我有一个 Excel 电子表格。我试图从 Excel 工作表中捕获包含日期的行,然后使用 datetime.strptime()
解析该日期。
这是我正在使用的 Excel 工作表的一部分:
以及我的相关代码:
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\\']
然后我尝试提取 Jun
、11
和 2013
但失败了:
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/