Python dateutil解析器,忽略字符串的非日期部分

我正在使用dateutil来解析图片文件名并根据日期对其进行排序。由于并非我的所有图片都具有元数据,因此dateutil试图猜测将其放置在何处。


我的大多数照片都采用以下格式:2007-09-10_0001.jpg 2007-09-10_0002.jpg等...


fileName = os.path.splitext(file)[0]

print("Guesssing date from ", fileName)

try:

    dateString = dateParser.parse(file, fuzzy=True)

    print("Guessed date", dateString)

    year=dateString.year

    month = dateString.month

    day=dateString.day

except ValueError:

    print("Unable to determine date of ", file)

我得到的回报是这样的:


('Guesssing date from ', '2007-09-10_00005')

('Unable to determine date of ', '2007-09-10_00005.jpg')

现在,我应该能够删除下划线之后的所有内容,但是如果可能的话,如果有其他格式的图片,我希望有一个更可靠的解决方案。我虽然模糊会尝试在字符串中找到任何日期并与之匹配,但显然不起作用...


有没有一种简单的方法可以使解析器找到看起来像日期的任何东西并在此之后停止?如果不是,则强制解析器忽略下划线后的所有内容的最简单方法是什么?或者使用忽略部分定义多种日期格式的方法。


烙印99
浏览 170回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python