我需要帮助。在该文件夹中有一个文件夹“ C:\ TEMP”,是格式化文件“ IN_ + 7123456789.amr”。有必要对给定模式的文件进行重命名。相应地,如果文件名为“ OUT_ + 7123456789.amr”,则“ IN_ NAME _ DATE-CREATE _ Phone number.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
抱歉,您的示例与您的问题不一致,但我仍然不明白您所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
模式,将被忽略。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句