我是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 ("")
非常感谢任何建议。
答案 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)