我需要帮助。 有一个文件夹" C:\ TEMP"在此文件夹中是格式化文件" IN_ + 7123456789.amr" 有必要为给定模式重命名文件。 " IN_ NAME _ DATE-CREATE _电话号码.amr" 相应地,如果一个名为" OUT_ + 7123456789.amr"结果格式" OUT_ NAME_DATE-CREATE_Phone number.amr"
问题是如何指定在os.rename之前检查过的文件名,并根据文件名使用模板
import os
path = "C:/TEMP"
for i, filename in enumerate(os.listdir(path)):
os.chdir(path)
os.rename(filename, 'name'+str(i) +'.txt')
i = i+1
答案 0 :(得分:0)
很抱歉,但您的问题中没有一个示例符合您的问题,我仍然不了解您的C:\temp
包含的内容......
好吧,假设它看起来像:
>>> os.listdir(path)
['IN_ + 7123456789.amr', 'OUT_ + 7123456789.amr']
示例:
import datetime
import re
import os
os.chdir(path)
for filename in os.listdir(path):
match = re.match(r'(IN|OUT)_ \+ (\d+).amr', filename)
if match:
file_date = datetime.datetime.fromtimestamp(os.stat(filename).st_mtime)
destination = '%s_%s_%s_Phone number.amr' % (
match.group(1), # either IN or OUT
match.group(2),
file_date.strftime('%Y%m%d%H%M%S'), # adjust the format at your convenience
)
os.rename(filename, destination)
将产生:
其他文件不会与re.match
模式匹配,会被忽略。