2017-04-03 6 views
0

Ich möchte Dateien mit nur ".hex" -Erweiterungen im Quellpfad verschieben. Ich schrieb die Codes wie unten;Verschieben von Dateien mit nur ".hex" -Erweiterungen in Python 3

os.makedirs(dst) 
src = "C:\\source_path" 
dst = "C:\\destination_path" 

for filename in os.listdir(): 
    if filename.endswith('.hex'): 
     shutil.move(src, dst , copy_function = copy2) 

Die Datei wurde erstellt, aber leer.

+0

Mögliches Duplikat [Auflisten von Dateien aus einem Verzeichnis mit glob Python] (http://stackoverflow.com/questions/22625616/listing-files-from-a-directory-using-glob-python) –

+0

Warum benutzt man 'copy_function = copy2' ?? versuchen Sie mit 'os.rename (src, dst)' 'shuthil.move (src, dst)' – Surajano

+1

Sie müssen den Dateipfad nicht nur die Namen der Datei angeben. – bernie

Antwort

0
  1. Sie müssen die Datei verschieben, nicht den Ordner. (Verwenden Sie os.path.join(src,filename))
  2. Sie gehen nicht über die src dir. (Verwenden os.listdir(src))

Probieren Sie etwas wie folgt aus:

os.makedirs(dst) 
src = "C:\\source_path" 
dst = "C:\\destination_path" 

for filename in os.listdir(src): 
    if filename.endswith('.hex'): 
     shutil.move(os.path.join(src,filename), dst) 
0
src = "C:\\source_path" 
dst = "C:\\destination_path" 
os.makedirs(dst, exist_ok=True) 

Erste Way;

source = os.listdir(src) 
for files in source: 
    if files.endswith(".hex"): 
     if not files.endswith("sample.hex"): 
      shutil.move(files,dst) 

Second Way;

source = os.listdir(src) 
for files in source: 
    if files.endswith(".hex"): 
     if not files.endswith("sample.hex"): 
      shutil.move(os.path.join(src, files), os.path.join(dst, files)) 
Verwandte Themen