我正在尝试将名称为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)
答案 0 :(得分:1)
使用split
,partition
或find
之一(感谢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))
剩下的所有代码都保持不变