重命名给定模式的文件

德米特里隐身

我需要帮助。在该文件夹中有一个文件夹“ 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)

将产生:

  • IN_7123456789_20150721094227_电话号码.amr
  • OUT_7123456789_20150721094227_电话号码.amr

其他文件将不匹配该re.match模式,将被忽略。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章