2014-10-10 87 views
0

我在我的Mac上的目錄中有大量視頻,它們都有我想要刪除的文件名中的特定字符串,但我想保留文件名的其餘部分。我從終端運行這個python腳本。Python文件名更改

我有這個語法,但它似乎並沒有工作。使用以下內容是否實用?這似乎很容易成爲做這種事情的最佳方式,這就是爲什麼我認爲它不起作用。

from os import rename, listdir 

text = "Some text I want to remove from file name" 
files = listdir("/Users/Admin/Desktop/Dir_of_videos/") 

for x in files: 
    if text in files: 
     os.rename(files, files.replace(text, "")) 

回答

1

的問題是,你會得到不完整路徑當您使用listdir,基本上,它在目錄中沒有預謀路徑僅返回文件的目錄

本應該做的工作:

import os 

in_dir = './test' 
remove = 'hello' 

paths = [os.path.join(in_dir,file) for file in os.listdir(in_dir) if remove in file] 

for file in paths: 
    os.rename(file, file.replace(remove, "")) 
+0

是的,這沒關係。謝謝:)你能解釋一下「文件」嗎?它是否真的告訴腳本使用這個「文件」? – 2014-10-10 16:45:22

+0

'file'就是這裏的迭代器,例如,當我做'os.listdir('./ test')','file'就是例如'planet.png'或者'world.png' – Sebastian 2014-10-10 16:47:38

+0

你可以插入一個'print(paths)'來查看路徑的樣子,並將它們與'os.listdir('./ test')進行比較' – Sebastian 2014-10-10 16:48:46