Von Python ausgeführte .exe Dateien finden .txt Datei nicht.

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
Deric
User
Beiträge: 2
Registriert: Samstag 27. Januar 2018, 21:45

Samstag 27. Januar 2018, 22:32

Hallo Python-forum
Ich stehe noch am Anfang der Programmierung mit Python und bin deshalb auf ein Problem gestoßen,
dass Ich nicht lösen kann.
Die Ausgangsposition ist, dass Ich mit einem Python Skript .exe Dateien ausführen will (die u.a. eine txt Datei öffnen), je nach dem ob bestimmte Variablen den Inhalt "true" haben.
Das Problem ist, dass die .exe Dateien zwar ausgeführt werden, aber die .txt Datei nicht finden und einen Fehler ausgeben:
"Die Datei XY.txt kann nicht gefunden werden"(Tippfehler hab Ich schon überprüft).
Wenn man die .exe Dateien allerdings manuell durch klicken ausführt, starten sie ohne Fehler die .txt Datei.
Habe das Problem schon gegoogelt, hab aber keine funktionierende Lösung gefunden. :K

Der Skript sieht folgendermaßen aus:

Code: Alles auswählen

if Anti_Netop == "true":
	subprocess.Popen([r"./USBOS/Anti_Netop.exe"]) 			#Anti_Netop.exe
else:
	print()
	
if Automatic_sorting == "true":
	subprocess.Popen([r"./USBOS/Sort.exe"])					#Sort.exe
else:
	print()
	
Danke schonmal an die Antworter.
Sirius3
User
Beiträge: 7586
Registriert: Sonntag 21. Oktober 2012, 17:20

Samstag 27. Januar 2018, 23:05

@Deric: mit der dürftigen Information kann man nur spekulieren, dass das Arbeitsverzeichnis dem der exe-Datei entsprechen muß.

Code: Alles auswählen

if Anti_Netop == "true":
    subprocess.call([r"./Anti_Netop.exe"], cwd="./USBOS")
Warum haben die Variablen keine wirklichen boolschen Werte?
Deric
User
Beiträge: 2
Registriert: Samstag 27. Januar 2018, 21:45

Sonntag 28. Januar 2018, 00:23

Danke für die Antwort, die Variablen haben keine boolschen Werte, weil Ich leider noch nicht weis wie Ich ihnen solche Werte zuweisen kann.
Dein Code funktioniert prima, nachdem Ich die Pfade angepasst habe, das Arbeitsverzeichnis war also das Problem.
Das man mit dem Befehl subprocess auch das Arbeitsverzeichnis ändern kann wusste ich nicht, wieder was gelernt :idea:
Vielen Dank für die Antwort und die aufgewendete Zeit!
Antworten