2017-08-02 4 views
0

Ich bin ein totaler Python Noob, aber ich möchte es lernen und es in meinen Workflow integrieren.Kopiere Dateien (als Backup) und ändere die ursprünglichen Dateinamen (Inhalte neu anordnen)

Ich habe etwa 400 Dateien 4 verschiedene Teile in den durch einen Unterstrich getrennt Dateinamen enthalten: -> Version_Date_ProjectName_ProjectNumber

Wie wir bei der Projektnummer suchen Allways zuerst, wir, um den Inhalt des Dateinamen für neue Projekte angeordnet: -> ProjectNumber_Version_ProjektName

Mein Problem ist jetzt, dass ich alle vorhandenen Dateien umbenennen möchte, um sie in das neue Format umzuordnen, während sie in einem Unterverzeichnis namens "Archiv" gesichert werden.

Es muss nur ein einfaches Skript sein, das ich in das Verzeichnis lege und jede Datei in diesem Verzeichnis wird als Backup kopiert und in den neuen Dateinamen geändert.

EDIT:

Mein erster Schritt war ein Unterordner im Quellverzeichnis zu erstellen, und es funktionierte irgendwie. Aber ich habe gesehen, dass ich nur die Dateien mit einer bestimmten Dateierweiterung sichern muss.

import os, shutil 

src_dir= os.curdir 
dst_dir= os.path.join(os.curdir, "Archiv") 

shutil.copytree(src_dir, dst_dir) 

Ich habe versucht, den Code mit den Lösungen von here zu verlängern, aber es nicht funktioniert. :/

Antwort

0
import os 
import shutil 
import glob 

src_path = "YOU_SOURCE_PATH" 
dest_path = "YOUR DESTINATION PATH" 

if not os.path.exists(dest_path): 
    os.makedirs(dest_path) 

files = glob.iglob(os.path.join(src_dir, "*.pdf")) 
for file in files: 
if os.path.isfile(file): 
    shutil.copy2(file, dest_path)  
+0

Aber Sie suchen mehr in der Zukunft :). Ich lerne Python selbst, aber nie Frage in Stack, weil es eine sehr gute und leistungsfähige Dokumentation hat. Aber ich werde dir jederzeit antworten :) –

+0

Danke für deine Antwort aber das Problem hier ist, dass ich einen Unterordner erstellen muss im Quellverzeichnis und kopieren Sie dann alle Dateien dorthin. ich es geschafft, das zu tun, mit import os, shutil src_dir = os.curdir dst_dir = os.path.join (os.curdir, "Archiv") shutil.copytree (src_dir, dst_dir) Aber jetzt sehe ich, dass ich nur die Dateien mit einer speziellen Dateierweiterung kopieren muss und das ist, wo ich jetzt kämpfe. ^^ – Giskard

+0

Ich habe den Beitrag bearbeitet, also, wenn Sie "pdf" mit Ihrem Erweiterungstyp ändern, funktioniert es am besten. –