如何使用python重命名一堆文件?

时间:2016-07-29 04:30:02

标签: python

我是python的初学者。我需要重命名一堆名称中包含日期的文件。名字都看起来像:

  • front 7.25.16
  • left 7.25.16
  • right 7.25.16

我希望他们从日期开始,而不是,以便front 7.25.16成为7.25.16 front

我尝试过使用正则表达式 os.walk ,但我遇到了麻烦。现在我只是想打印文件名来证明 os.walk 正在运行。现在我的代码看起来像这样:

import re, shutil, os

K = re.compile(r"(\d+.\d+.\d+)")
RE_Date = K.search("front 7.25.16")

for root, dirs, filenames in os.walk("path"):
    for filename in filenames:
        print ("the filename is: " + filename)
    print ("")

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

选中此示例以根据需要重命名文件。

import os

filenames = ["front 7.25.16.jpg", "left 7.25.16.jpg", "right 7.25.16.jpg"]

for file_name in filenames:
    x = file_name.split(' ')[0]
    y = file_name.split(' ')[1]
    new_name = '{} {}{}'.format(os.path.splitext(y)[0], x, os.path.splitext(y)[-1])
    print new_name

输出:

7.25.16 front.jpg
7.25.16 left.jpg
7.25.16 right.jpg

在您的代码中,您可以使用os.rename重命名文件

import os

for root, dirs, filenames in os.walk("path"):
    for file_name in filenames:
        x = file_name.split(' ')[0]
        y = file_name.split(' ')[1]
        new_name = '{} {}{}'.format(os.path.splitext(y)[0], x, os.path.splitext(y)[-1])
        file_path = os.path.join(root, file_name)
        new_path = os.path.join(root, new_name)
        os.rename(file_name, new_path)