2017-10-19 1 views
1

Dies könnte mit Python getan werden, aber ich denke, ich vermisse eine Möglichkeit für alle Verzeichnisse Schleife. Hier ist der Code Ich verwende:Ordner mit Unterordnern, die mehrere Dateien enthalten (.xlsm, .pdf, .txt). Wie Umbenennen von .pdf-Dateien in den Namen von Unterordnern?

import os 
def renameInDir(directory): 
    for filename in os.listdir(directory): 
     if filename.endswith(".pdf"): 
     path = os.path.realpath(filename) 
     parents = path.split('/') //make an array of all the dirs in the path. 0 will be the original basefilename 
     newFilename=os.path.dirname(filename)+directory +parents[-1:][0] //reorganize data into format you want 
     os.rename(filename, newFilename)//rename the file 
+0

ich nicht bekommen, wie die neuen Dateinamen sein sollte. Möchten Sie die PDF-Erweiterung einfach entfernen oder versuchen Sie sie zu ersetzen? –

+0

Könnten Sie uns bitte mitteilen, ob die folgende Lösung für Sie funktioniert? Wenn ja, könnten Sie bitte die Antwort akzeptieren? @ Eduardo Valdez –

Antwort

0

Sie mit os.walk() gehen sollte. Es wird den Verzeichnisbaum nach dem angegebenen Verzeichnisparameter abbilden und die Dateinamen erzeugen.

os.walk() Verwenden Sie das gewünschte Ergebnis zu erreichen ist auf diese Weise:

import os 
from os.path import join 
for dirpath, dirnames, filenames in os.walk('/path/to/directory'): 
    for name in filenames: 
     new_name = name[:-3] + 'new_file_extension' 
     os.rename(join(dirpath, name), join(dirpath, new_name)) 
Verwandte Themen