2016-06-28 52 views
0
import os 
import re 
def rename_files(): 
#get file names from a folder 

file_list = os.listdir("/Users/myname/Desktop/Python") 
#print (file_list) 

saved_path = os.getcwd() 
print(saved_path) 
os.chdir("/Users/myname/Desktop/Python") 

#rename each file 
for file_name in file_list: 
    os.rename(file-name, re.sub("[0-9]", "", file_name)) 
os.chdir(saved_path) 

rename_files() 

上面的代碼應重命名所在的特定文件夾內的文件名中刪除所有號碼的每個文件,但一切都沒有改變。誰能幫忙?謝謝。的Python 3.5.1:更改文件名

+0

爲什麼你不想匹配文件名後面的數字? – Natecat

+0

您是否檢查過re.sub(「[0-9](?!\ d * $)」,「」,file_name)的結果? – RvdK

+1

'file-name'從哪裏來?錯字? –

回答

2

從文件名

如果要刪除所有號碼,然後刪除所有的數字爲什麼你需要一個斷言:(?!\d*$)

當你可以簡單地做:

os.rename(file_name, re.sub("[0-9]", "", file_name)) 

而你做錯了:

os.rename(file-name, re.sub("[0-9](?!\d*$)", "", file_name)) 
#   ^
+0

你是對的我不需要它..已更新的代碼,但仍然..謝謝你 – user6522282

+0

你有沒有注意到你的'os.chdir(「/」用戶/ mynaame /桌面/ Python「)'在'name'中有一個雙」a「? –

+0

是的,這是我的名字,但當我在這裏發佈代碼時,我改變了它。 – user6522282