2017-04-12 3 views
0

Ich habe viele Dateien xxxxxxAB123, xxxxAB124, xxxxAB125, xxxxAB126 ... Ich muss diese Dateien in ihre jeweiligen Ordner basierend auf dem Dateinamen verschieben, zum Beispiel Datei xxxxxAB123 sollte in den Ordner AB123, Datei verschoben werden xxxxAB124 sollte in den Ordner AB124 verschoben werden, und so weiter ... Wie erreiche ich das in Python?Python - Dateiname und Ordnername Vergleich

+2

Willkommen bei Stackoverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Zum Thema] (http://stackoverflow.com/help/on-topic) und [How to ask] (http://stackoverflow.com/help/how-to-ask) gilt hier. StackOverflow ist kein Codierungs- oder Lernprogramm. – AChampion

Antwort

0

Wenn alle Dateinamen dasselbe Muster haben (z. B. was immer an der Vorderseite steht, endet mit AB ###), können Sie den letzten Teil aufteilen, ein Verzeichnis damit erstellen und dann die Datei in das Verzeichnis verschieben.

den Code unten Versuchen:

import os 
import shutil 

directory = "path/to/files" 
for file in os.listdir(directory): 
    dirName = file[-5:] # retrieves the last 5 characters in the filename. 
    try: 
     os.mkdir(os.path.join(directory, dirName)) 
    except OSError: 
     pass 
    shutil.move(os.path.join(directory, file), os.path.join(directory, dirName)) 
+0

die Ordner existieren bereits, keine Notwendigkeit, neu zu machen, wie man es ändert? – Jeff

+0

@Jeff Wenn Sie bereits die Ordner haben, können Sie die Sequenz try-except entfernen, die ein Verzeichnis erstellt. – Squizz