我希望我的所有文件都是格式化的: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
答案 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'
不是有效的时间戳,例子)。