2016-06-23 12 views
1

Liebe Pythonisten, ich habe eine ausführbare Software.exe, die von einem Python-Modul aufgerufen wird. Diese Software.exe erstellt neue Dateien als Ausgaben. Ich möchte eine dieser Dateien genannt bewegen „whatever.xml‘ zu anotherFolder wie kann ich ‚refresh‘ ein Verzeichnisinhalt? Der einzige folgenden Code den vorherigen Zustand betrachten und die neu erzeugten Dateien nicht finden können. DankWie man das Verzeichnis aktualisiert, um in Python mit subprocess.Popen nach neuen Dateien zu suchen

subprocess.Popen('sofware.exe') 
shutil.copy('whatever.xml' , anotherFolder) 
+1

Sie sollten die Dateien auflisten können, in diesem Verzeichnis wieder zu "aktualisieren". Ist das ein [mcve]? –

+0

Ich vermisse einen vorherigen Kommentar, der "warte, bis der Subprozess beendet ist". Es hat für mich funktioniert. Sicher, es wird andere Möglichkeiten geben, dasselbe zu tun. – user2564259

+0

@ cricket_007 danke für den Hinweis. – user2564259

Antwort

1

Popen nicht blockiert, so dass die Dateien nicht erstellt werden kann, bevor Sie Kopie rufen Sie .communicate() anrufen oder einfach check_call verwenden, die Rückkehr gewohnt, bis der Vorgang abgeschlossen ist.

subprocess.check_call('sofware.exe') 
shutil.copy('whatever.xml' , anotherFolder) 
+0

Das hat gut funktioniert! Danke – user2564259

+0

Ich tat 'subprocess.Popen.wait (subprocess.Popen ('software.exe'))' und es hat gut funktioniert – user2564259

Verwandte Themen