gpt4 book ai didi

python - 在 python 中使用 import re 从文件名中提取日期

转载 作者:行者123 更新时间:2023-12-04 08:42:54 25 4
gpt4 key购买 nike

我的文件名如下所示:

show_data_paris_12112019.xlsx
我只想提取日期,我试过这个脚本:
date = os.path.basename(xls)
pattern = r'(?<=_)_*(?=\.xlsx)'

re.search(pattern, date).group(0)
event_date = re.search(pattern, date).group(0)
event_date_obj = datetime.strptime (event_date, '%Y%m%d')
但它给了我错误。我怎样才能解决这个问题?
谢谢你。

最佳答案

在我看来,您使用的正则表达式也有问题,因此在尝试时失败 group(0)从空归。
假设您的所有日期都存储为数字,那么我所做的以下正则表达式似乎工作得很好。

(?!.+_)\d+(?=\.xlsx)
下一个问题是当格式化日期时,它遇到了格式化日期的问题,在我看来 12112019 将是 12/11/2019 显然这也可能是 11/12/2019 但基本的是我们改变了 strftime 格式化日期的方式。
所以对于我们将使用的日期/月/年格式
# %d%m%Y
event_date_obj = datetime.strptime(event_date, '%d%m%Y')
我们只需将 %d 和 %m 交换为月/日期/年格式。所以你的完整代码看起来像这样:
date = os.path.basename(xls)
pattern = "(?!.+_)\d+(?=\.xlsx)"
event_date = re.search(pattern, date).group(0)
event_date_obj = datetime.strptime (event_date, '%d%m%Y')
有关如何使用 strftime 的更多信息,请参阅 https://strftime.org/ .

关于python - 在 python 中使用 import re 从文件名中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64476368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com