Seite 1 von 1

Commandline Befehl unter Python absetzen.

Verfasst: Freitag 12. September 2003, 08:02
von 2bock
Hallo,

ich möchte aus meiner Python Anwendung heraus eine SAPDB starten. Bisher starte ich sie über eine Batchdatei, möchte dies aber aus meinem Python Programm heraus tun. Wie geht das? Ich hab ein paar Sachen schon ausprobiert, aber nix hat bisher funktioniert.

Dank für eure Hilfe. :D

Habs geschafft

Verfasst: Freitag 12. September 2003, 10:08
von 2bock antwortet
Nur für die, die es interessiert!

os.system(' <Text der in die DosBox soll> ')

und dann läuft es. Allerdings hab ich bei mir halt nen Fenster, das relativ lange angezeitg wird, aber letztendlich geschlossen wird.

:shock:

Verbesserung

Verfasst: Freitag 12. September 2003, 10:23
von 2bock_antwortet_wieder
ersetzt man os.system durch os.popen, dann ist auch das nervige cdm.exe Fenster weg.

Re: Verbesserung

Verfasst: Freitag 12. September 2003, 14:13
von Milan
2bock_antwortet_wieder hat geschrieben:ersetzt man os.system durch os.popen, dann ist auch das nervige cdm.exe Fenster weg.
Wobei aber os.system und os.popen zwei verschiedene Dinge sind... os.system startet Prozesse synchron und os.popen startet Prozesse asynchron, die mit einer Pipe zum Python Hauptprozess verbunden sind.

Verfasst: Mittwoch 3. Mai 2006, 15:20
von CapJo
Sorry wenn ich den Thread ausgrabe, aber wie bekomme ich die nervige DOS-Box weg wenn ich Befehler per os.system("") abesetze?

Eine Lösung für VB hab ich gefunden --> shell("cmd /c dir",vbhide)

Gibt es sowas auch für Python ?

Ich bekomme hier sonst epileptische Anfälle wenn die Box x-mal aufgeht.

Verfasst: Donnerstag 4. Mai 2006, 07:54
von Mad-Marty
Du nimmst nicht os.system().

:roll:

Die Lösung steht sogar im thread.

Re: Verbesserung

Verfasst: Donnerstag 4. Mai 2006, 09:22
von CapJo
Milan hat geschrieben:
2bock_antwortet_wieder hat geschrieben:ersetzt man os.system durch os.popen, dann ist auch das nervige cdm.exe Fenster weg.
Wobei aber os.system und os.popen zwei verschiedene Dinge sind... os.system startet Prozesse synchron und os.popen startet Prozesse asynchron, die mit einer Pipe zum Python Hauptprozess verbunden sind.
:roll: Wer lesen kann ist klar im Vorteil ... per os.popen läuft das ganze asynchron und das ist nicht immer gewünscht ... ich hoffe du hast es verstanden ...

Verfasst: Donnerstag 4. Mai 2006, 10:43
von jens
Ich würde allerdings subprocess nehmen: [wiki]Neue Features#Subprocess[/wiki] 8)

Re: Verbesserung

Verfasst: Donnerstag 4. Mai 2006, 21:48
von BlackJack
CapJo hat geschrieben:
Milan hat geschrieben:
2bock_antwortet_wieder hat geschrieben:ersetzt man os.system durch os.popen, dann ist auch das nervige cdm.exe Fenster weg.
Wobei aber os.system und os.popen zwei verschiedene Dinge sind... os.system startet Prozesse synchron und os.popen startet Prozesse asynchron, die mit einer Pipe zum Python Hauptprozess verbunden sind.
:roll: Wer lesen kann ist klar im Vorteil ... per os.popen läuft das ganze asynchron und das ist nicht immer gewünscht ... ich hoffe du hast es verstanden ...
Stimmt, wer lesen kann hätte in der Dokumentation die `os.spawn*()` Familie gefunden. :-)