确保文件名采用日期时间格式正确

时间:2013-07-09 08:55:21

标签: regex datetime python-2.7

我希望我的所有文件都是格式化的:2013-03-31_142436.jpg%Y-%m-%d_%H%M%S

我有一个脚本可以重命名,但是想检查文件名是否是第一个格式。我这样做:

for filename in files:
    # check filename not already in file format
    filename_without_ext = os.path.splitext(filename)[0];

如何检查filename_without_ext的格式为%Y-%m-%d_%H%M%S

2 个答案:

答案 0 :(得分:2)

使用re

import re
if re.match(r'\d{4}-\d{2}-\d{2}_\d{6}$', filename_without_ext):
    pass # of the right format

这只是检查它看起来就像它有可能成为有效日期一样。如果您要求 有效日期,请使用Martijn的答案。

答案 1 :(得分:2)

尝试将其解析为时间戳:

from time import strptime

try:
    strptime(filename_without_ext, '%Y-%m-%d_%H%M%S')
except ValueError:
    # Not a valid timestamp

strptime()测试的优势在于它可以保证您拥有有效的日期时间值,而不仅仅是仍然可以表示无效日期时间的数字模式('1234-56-78_987654'不是有效的时间戳,例子)。