2016-06-28 10 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() 

Der obige Code sollte jede Datei umbenennen, die durch das Entfernen aller Zahlen aus dem Dateinamen in einem bestimmten Ordner befindet, aber nichts hat sich geändert. Kann jemand helfen ? Vielen Dank.Python 3.5.1: Dateinamen ändern

+0

Warum möchten Sie keine Zahlen am Ende eines Dateinamens finden? – Natecat

+0

Haben Sie das Ergebnis von re ("[0-9] (?! \ D * $)", "", Dateiname) überprüft? – RvdK

+1

Woher kommt 'Dateiname'? Tippfehler? –

Antwort

2

alle Zahlen aus den Dateinamen zu entfernen

Wenn Sie alle Zahlen zu entfernen sind dann, warum Sie eine Behauptung brauchen: (?!\d*$)

Wenn Sie können einfach tun:

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

Und Sie tun es falsch:

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

Sie haben Recht, ich brauche es nicht .. habe den Code aber immer noch aktualisiert .. danke tho – user6522282

+0

Haben Sie bemerkt, Ihre 'os.chdir ("/Benutzer/myname/Desktop/Python ")' hat ein doppeltes 'a' in' name'? –

+0

Ja, es ist mein Name, aber ich habe es geändert, als ich den Code hier gepostet habe .. – user6522282