Seite 1 von 1

Dateien in Unterprogramm öffnen

Verfasst: Freitag 14. Mai 2021, 17:33
von _Fragezeichen123
Hallo,

ich habe folgenden Code geschrieben. Mit dem will ich alle Dateien, die in dem Pfad abgelegt sind, in die ausführbare Datei (exe) reinladen. Die Befehle funktionieren alle, es wird kein Fehler angezeigt und das Programm öffnet sich auch. Allerdings werden die Dateien nicht reingeladen, sondern es kommt in dem Programm eine Error-Meldung (File kann nicht geladen werden). Kann mir jemand sagen, an was das liegt bzw. ob ich einen Fehler in meinem Code habe oder einen anderen Befehl benötige?
Vielen Dank

import os
import array
import subprocess
import time
dateien = os.listdir('C:\\Users\\Beispielpfad\\')
dateien.insert(0, "C:\\automate\\slic3r\\slic3r.exe")
subprocess.Popen(dateien)

Re: Dateien in Unterprogramm öffnen

Verfasst: Freitag 14. Mai 2021, 20:43
von __blackjack__
@_Fragezeichen123: In der Liste sind vielleicht Sachen mit denen das Programm nichts anfangen kann? Verzeichnisse?

Re: Dateien in Unterprogramm öffnen

Verfasst: Samstag 15. Mai 2021, 09:46
von Sirius3
Du wirst wahrscheinlich absolute Pfade verwenden müssen, damit die Exe die Dateien auch findet.

Re: Dateien in Unterprogramm öffnen

Verfasst: Freitag 21. Mai 2021, 13:13
von _Fragezeichen123
Danke, das war tatsächlich das Problem!!

Re: Dateien in Unterprogramm öffnen

Verfasst: Freitag 21. Mai 2021, 13:31
von Sirius3
`array` und `time` werden gar nicht verwendet. Der Rückgabewert von Popen wird nicht benutzt, insbesondere wird nicht auf das Ende des Programms gewartet.
Statt os.listdir benutzt man heutzutage Pathlib.

Code: Alles auswählen

from pathlib import Path
import subprocess
SLICER = "C:/automate/slic3r/slic3r.exe"
dateien = list(Path('C:/Users/Beispielpfad').iterdir())
subprocess.run([SLICER] + dateien)

Re: Dateien in Unterprogramm öffnen

Verfasst: Freitag 21. Mai 2021, 14:09
von __blackjack__
Alternative Syntax:

Code: Alles auswählen

from pathlib import Path

import subprocess
SLICER = "C:/automate/slic3r/slic3r.exe"
subprocess.run([SLICER, *Path('C:/Users/Beispielpfad').iterdir()])