为给定模式重命名文件
Renaming of files for a given pattern
我需要帮助。
有一个文件夹"C:\TEMP"在这个文件夹里是格式化文件"IN_ + 7123456789.amr"
有必要为给定的模式重命名文件。
"IN_ NAME _ DATE-CREATE _ Phone number.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
抱歉,您的 none 个示例与您的问题一致,我仍然不明白您的 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)
将产生:
- IN_7123456789_20150721094227_Phone number.amr
- OUT_7123456789_20150721094227_Phone number.amr
其他文件将不匹配 re.match
模式并被忽略。
我需要帮助。 有一个文件夹"C:\TEMP"在这个文件夹里是格式化文件"IN_ + 7123456789.amr" 有必要为给定的模式重命名文件。 "IN_ NAME _ DATE-CREATE _ Phone number.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
抱歉,您的 none 个示例与您的问题一致,我仍然不明白您的 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)
将产生:
- IN_7123456789_20150721094227_Phone number.amr
- OUT_7123456789_20150721094227_Phone number.amr
其他文件将不匹配 re.match
模式并被忽略。