题目:
当前文件夹下,文件名包含美国风格的日期 (MM-DD-YYYY),需要将它们改名为欧洲风格的日期(DD-MM-YYYY)。
代码:
#! python3
# renameDates.py - 将当前文件夹中 文件名中的美国风格的日期(MM-DD-YYYY)转化为欧洲风格的日期(DD-MM-YYYY)
# 例如: rename dadq09-26-2020hhh.txt to dadq26-09-2020hhh.txt
import re,os,shutil
#TODO: 创建一个美国日期的正则表达式
AmerRegex=re.compile(r'''^(.*?)
((0|1)?\d)- #MM
((0|1|2|3)?\d)- #DD
((19|20)\d\d) #YYYY
(.*?)$
''', re.VERBOSE)
#TODO: 遍历所有文件
for AmerName in os.listdir('.'):
AmerMatch = AmerRegex.search(AmerName)
if AmerMatch != None:
#提取MM,DD,YYYY,及文件名的其他部分
BeforePart=AmerMatch.group(1)
MM=AmerMatch.group(2)
DD=AmerMatch.group(4)
YYYY=AmerMatch.group(6)
AfterPart=AmerMatch.group(8)
#创建欧洲风格日期的文件名
EupName=BeforePart+DD+'-'+MM+'-'+YYYY+AfterPart
#重命名
currentPath=os.getcwd()
AmerPath=os.path.join(currentPath,AmerName)
EupPath=os.path.join(currentPath,EupName)
print('Rename %s to %s'%(AmerPath,EupPath))
shutil.move(AmerPath,EupPath)#重命名