Dateien in Unterprogramm öffnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
_Fragezeichen123
User
Beiträge: 2
Registriert: Freitag 14. Mai 2021, 17:26

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)
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@_Fragezeichen123: In der Liste sind vielleicht Sachen mit denen das Programm nichts anfangen kann? Verzeichnisse?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Du wirst wahrscheinlich absolute Pfade verwenden müssen, damit die Exe die Dateien auch findet.
_Fragezeichen123
User
Beiträge: 2
Registriert: Freitag 14. Mai 2021, 17:26

Danke, das war tatsächlich das Problem!!
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

`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)
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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()])
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten