Seite 1 von 1
Keine Konsolen Box
Verfasst: Montag 25. September 2006, 01:59
von Anika354
Hi,
wie ihr sicher gleich merken werdet bin ich noch sehr neu bei Python !:oops:
Ich habe ein kleines Programm aus bytheofpython geschrieben bei dem man Dateien in einem anderen Ordner sichern kann ! Was mich aber sehr nervt ist das immer dieses schwarze Konsolenfenster kurz aufgeht und sich wieder schließt wenn ich das Programm ausführe ! Gibt es da keine andere Möglichkeit ??
kurzer Code Auszug wie ich das ausführe:
Code: Alles auswählen
#Befehl create
sicherungsbefehl = "zip -qr %s %s" % (sicherungsname, " ".join(quellenordner))
#Ausführung von Befehl mit Fehlerausgabe
if os.system(sicherungsbefehl) == 0:
print "Operation erfolgreich abgeschlossen !!"
else:
print " Operation abgebrochen !!"
Wenn jemand eine andere Lösung weiss und mir helfen kann wäre das echt nett ! Danke schon einmal fürs durchlesen
!!
ciao Ani
Verfasst: Montag 25. September 2006, 06:41
von BlackJack
Ich vermute mal Du arbeitest unter Windows. Dann ändere die Dateierweiterung von .py auf .pyw
Verfasst: Montag 25. September 2006, 07:12
von birkenfeld
Nur helfen dir dann die print-Anweisungen nichts, weil du sie nicht mehr sehen wirst.
Verfasst: Montag 25. September 2006, 10:00
von Y0Gi
Alternativ kannst du am Ende ein raw_input() anhängen. Dann bleibt das Fenster so lange geöffnet, bis du Enter gedrückt hast.
Übrigens sollte das letzte print in deinem Code eingerückt sein, damit es syntaktisch korrekt ist.
Danke ! Danke !!
Verfasst: Montag 25. September 2006, 13:13
von Anika354
Hallo,
ich finds echt nett wie schnell einem hier geholfen wird !
Ich hab eure Tipps probiert aber das schwarze Fenster geht leider immer noch auf ....
Das ich die Print-Rückmeldung dann nicht mehr sehe finde ich nicht so schlimm ! Es geht mir viel mehr darum das, dass ganze unsichtbar abläuft und nicht immer dieses Fenster aufgeht . Er soll wenn ich das Programm öffne einfach selber wie von Zauberhand, ohne das schwarze Fenster, die Daten sichern ! Ob es dann geklappt hat kann ich ja sehen wenn ich in den Ordner schaue.
trotzdem vielen lieben Dank
*wink* Ani
Re: Danke ! Danke !!
Verfasst: Montag 25. September 2006, 13:45
von gerold
Anika354 hat geschrieben:Es geht mir viel mehr darum das, dass ganze unsichtbar abläuft und nicht immer dieses Fenster aufgeht.
Hi Ani!
Vielleicht bringt es dich weiter, wenn du ``os.system()`` durch einen anderen Aufruf ersetzt.
http://docs.python.org/lib/node537.html
Sollte das oben genannte ``subprocess``-Beispiel nicht funktionieren, dann probier es doch mal damit:
http://docs.python.org/lib/node539.html
mfg
Gerold
Ja genau das wäre gut !!
Verfasst: Montag 25. September 2006, 15:20
von Anika354
Ich glaube das würde mein Problem lösen !!
@gerold : DANKE !!!
Aber ich bin leider noch irgendwie zu dumm das ganze auf mein Programm umzuschreiben weil er die Methode Popen nicht kennt
!
Muss ich da noch ein Modul integrieren ?
Habs mal so versucht : (ist wahrscheinlich total Falsch
)
p = Popen("sicherungsbefehl", shell=True)
sts = os.waitpid(p.pid, 0)
Ich weiss ich bin so ein Anfänger sorry wenn ich euch mit sowas belästige und danke für die nette Hilfe !
ciao Ani
Verfasst: Montag 25. September 2006, 15:33
von Y0Gi
<del>Die Methode wird klein geschrieben und befindet sich im os-Modul, daher erfolgt der Aufruf mit os.popen().</del>
Verfasst: Montag 25. September 2006, 15:34
von birkenfeld
oder
So sollte es klappen. Details findest du z.B. in [wiki]ModulImport[/wiki].
Re: Ja genau das wäre gut !!
Verfasst: Montag 25. September 2006, 15:42
von gerold
Anika354 hat geschrieben:Code: Alles auswählen
p = Popen("sicherungsbefehl", shell=True)
sts = os.waitpid(p.pid, 0)
Hi Ani!
Sorry! Ich habe mir das Beispiel nicht genau angesehen. Ich wusste nicht, dass es so schlecht ist.
Dieser Code hier funktioniert sicher:
Code: Alles auswählen
from subprocess import Popen
p = Popen("dir", shell = True)
retcode = p.wait()
print retcode
mfg
Gerold
Es geht wirklich !!!
Verfasst: Montag 25. September 2006, 20:21
von Anika354
Es funktioniert ganz easy
!!! Auch wenn ich es nicht ganz verstehe aber das kommt schon noch mit der Zeit ! Der Retcode 1 und 0 bedeutet ob es funktioniert hat bzw True und False !
VIELEN VIELEN DANK FÜR DIE NETTE HILFE !!!
IHR SEIT SUPER !!!!!
bis bald Ani
Re: Es geht wirklich !!!
Verfasst: Montag 25. September 2006, 22:08
von Y0Gi
Anika354 hat geschrieben:Es funktioniert ganz easy
!!! Auch wenn ich es nicht ganz verstehe aber das kommt schon noch mit der Zeit ! Der Retcode 1 und 0 bedeutet ob es funktioniert hat bzw True und False !
Ich weiß nicht, wie es hier gedacht ist, aber normalerweise sieht das anders aus: 0 bedeutet 'ok', 1 generell 'Fehler', 2 steht für Fehler beim Aufruf wie falsche Argumente auf der Kommandozeile. Höhere Zahlen sind anwendungsspezifisch. Müsste auch in den Python-Docs stehen, habe ich aber auf die schnelle nicht wiedergefunden.