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

如何使用python重命名一组文件?,python,Python,我是python的完全初学者。我需要重命名一堆文件,文件名中有日期。这些名字看起来都像: front 7.25.16 左7.25.16 right 7.25.16 我希望他们从日期开始,而不是从前面、左边或右边开始,这样front 7.25.16变成7.25.16 front 我曾尝试使用正则表达式和os.walk,但两者都遇到了问题。现在我只是想打印文件名来证明os.walk是有效的。现在,我的代码如下所示: 导入re、shutil、os K=重新编译(r“(\d+。\d+。\d+) 重新

我是python的完全初学者。我需要重命名一堆文件,文件名中有日期。这些名字看起来都像:

  • front 7.25.16
  • 左7.25.16
  • right 7.25.16
我希望他们从日期开始,而不是从前面、左边或右边开始,这样
front 7.25.16
变成
7.25.16 front

我曾尝试使用正则表达式和os.walk,但两者都遇到了问题。现在我只是想打印文件名来证明os.walk是有效的。现在,我的代码如下所示:

导入re、shutil、os
K=重新编译(r“(\d+。\d+。\d+)
重新搜索日期=K.search(“前7.25.16”)
对于os.walk(“路径”)中的根、目录和文件名:
对于文件名中的文件名:
打印(“文件名为:”+filename)
打印(“”)

如果您有任何建议,我们将不胜感激。

请检查此示例以根据您的需要重命名文件

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
在您的代码中,您可以用于重命名文件

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)

你可能会重复“我遇到麻烦了”这句话。什么具体不起作用?首先是
os.walk
返回三个
根目录、目录、文件
…我现在不在计算机旁,所以无法检查它,但谢谢,这看起来可以工作。如果他们都是.jpg,有什么问题吗?