Befehle zum Arbeiten mit einer Datei

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
Bfmg
User
Beiträge: 2
Registriert: Sonntag 7. August 2016, 10:49

Hallo zusammen,

ich habe da ein Problem:
ich habe eine Datei ("button.py") erstellt, welche eine weitere Datei ("remove.py") öffnen soll. Die Datei "remove.py" befindet sich in zwei Unterordnern, wodurch der Pfad zur Datei "/files/gp/remove.py" lauten müsste.
In der Datei "button.py" habe ich folgenden Befehl eingefügt:
os.system("./files/gp/remove.py")

Bei Ausführung der Datei "button.py" bekomme ich nun folgende Fehlermeldung in der Shell ausgegeben:
Der Befehl "." ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Jetzt ist meine Frage, wo der Fehler liegt?!

Vielen Dank für die Hilfe!
BlackJack

@Bfmg: Der wird wahrscheinlich in dem tatsächlichen Quelltext liegen und ein Leerzeichen zu viel sein. Wobei man `os.system()` auch eher nicht verwenden sollte. Für das ausführen von externen Programmen ohne eine zusätzlich, unnötige Shell und die Probleme die sich dadurch ergeben können, gibt es das `subprocess` Modul.
Bfmg
User
Beiträge: 2
Registriert: Sonntag 7. August 2016, 10:49

@BlackJack: Vielen Dank für deine schnelle Rückmeldung.

Ich habe folgenden Quellcode in der Datei "button.py":

Code: Alles auswählen

[Codebox=pycon file=Unbenannt.txt]from Tkinter import *
import os

main=Tk()

def remove():
     os.system("./files/gp/remove.py")

b1=Button(main,text="Remove",command=remove)
b1.pack()

main.mainloop()[/Codebox]
Ein Leerzeichen konnte ich bis jetzt noch nicht finden, aber vielleicht übersehe ich auch etwas?!
Ich werde jetzt aber erst einmal deiner Idee mit dem Subprocess-Modul folgen, vielleicht habe ich damit mehr erfolg.

Ich habe den Quellcode jetzt ein wenig umgeschrieben, kannst du mir sagen ob der Aufruf über den Subprocess so korrekt ist? Ich bekomme jedenfalls immer eine Fehlermeldung:
Bild

So sieht der umgeschriebene Quellcode aus:

Code: Alles auswählen

[Codebox=pycon file=Unbenannt.txt]from Tkinter import *
import os
import subprocess

main=Tk()

def remove():
    file="./files/gp/remove.py"
    subprocess.Popen(file)
    
b1=Button(main,text='Remove',width=10,height=2,command=remove)
b1.pack()

main.mainloop()
[/Codebox]
Zuletzt geändert von Anonymous am Sonntag 7. August 2016, 12:21, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Antworten