如何用python中的不同数字重命名文件?

时间:2018-01-19 11:43:24

标签: python python-os

我正在尝试将名称为This is File 132 (file no 132)的文件列表重命名为This is File 132。所以我想要的是用(file no *)替换''。如何实现这个*,最终我想在每个文件中替换名称中的这个特定位置。这是我到目前为止编写的代码。任何帮助表示赞赏。

import os

directoryname = "/media/username/New Volume/"

listFiles = os.listdir(directoryname)
print(listFiles)
for i in listFiles:
    os.rename(os.path.join(directoryname, i), os.path.join(directoryname, i.replace('(file no 132)', '')))

listFiles = os.listdir(directoryname)
print(listFiles)

2 个答案:

答案 0 :(得分:1)

使用splitpartitionfind之一(感谢CristiFati获取建议):

os.rename(os.path.join(directoryname, i), os.path.join(directoryname, i.split(' (file no')[0]))

os.rename(os.path.join(directoryname, i), os.path.join(directoryname, i.partition(' (file no')[0]))

os.rename(os.path.join(directoryname, i), os.path.join(directoryname, i[:i.find(' (file no') -1)])

在测试中,partition是3中最快的(对于这种简单的操作,re要慢得多。)

答案 1 :(得分:0)

试试这个:

for i in listFiles:
     k = re.sub(r'\([^)]*\)', '', i)
     os.rename(os.path.join(directoryname, i), os.path.join(directoryname, k))

剩下的所有代码都保持不变