0

我希望我的所有文件都是非格式的: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

4

2 回答 2

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 的答案。

于 2013-07-09T08:58:30.713 回答
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'例如,它不是一个有效的时间戳)。

于 2013-07-09T08:59:14.897 回答