python - 使用 datetime.strptime() 时出现问题

标签 python regex excel datetime strptime

我有一个 Excel 电子表格。我试图从 Excel 工作表中捕获包含日期的行,然后使用 datetime.strptime() 解析该日期。

这是我正在使用的 Excel 工作表的一部分:

enter image description here

以及我的相关代码:

pattern = re.compile(r'Listing(.+)', re.IGNORECASE)

a = pattern.findall(str(df))
print("a:", a)

new_a = str(a)
datetime_object = datetime.strptime(new_a, '%b %w %Y')
print("date:", datetime_object)

因此,我捕获了 LISTING 之后的所有内容并生成:

a: [' JUN 11 2013 未命名: 1\\']

然后我尝试提取 Jun112013 但失败了:

ValueError: 时间数据“[' JUN 11 2013 Unnamed: 1\\\\']”与格式 '%b %w %Y' 不匹配

我相当确定这是一个简单的修复,但作为初学者,我不知道如何修复它。我应该改变我的正则表达式以捕获更少的数据吗?或者我应该修复 date.strptime() 正在接受的参数?

查看文档时,这些论点似乎是正确的:https://docs.python.org/3.5/library/datetime.html

感谢您的帮助。

最佳答案

您需要修改用于从 Excel 文件获取日期的正则表达式。

pattern = re.compile(r'Listing ([A-Z]+\d{1,2}\d{4})', re.IGNORECASE)

[A-Z]+ 表示“一个或多个大写字母”,\d{1,2} 表示“一个或两个数字”,\d {4} 表示“四个数字”。

此外,您使用的日期格式不正确 - %w 表示工作日(0 到 6 的数字代表周日到周六的工作日),而您应该使用 %d 匹配该月的某一天

所以最终应该是这样的: datetime_object = datetime.strptime(new_a, '%b %d %Y')

关于python - 使用 datetime.strptime() 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558338/

相关文章:

删除已在 R studio 中使用 read.xlsx 打开的文件

python - 子图 matplotlib 的常见图例

python - 由于 Flask-WTF 的 CSRF 保护,Flask-Restful POST 失败

python - "CSRF token missing or incorrect"

regex - Python 和正则表达式 : Match all, 但当 x 或 y 时则不然

python - 正则表达式 匹配相等数量的两个字符

VBA 调整 OSK.exe 窗口的大小

python - 从 Pandas 数据框创建二维数组

excel - 正则表达式函数将段落拆分为句子以进行 Power 查询

VBA 用户表单单张链接库存条目