Commandline Befehl unter Python absetzen.

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
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Freitag 12. September 2003, 08:02

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
2bock antwortet

Freitag 12. September 2003, 10:08

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:
2bock_antwortet_wieder

Freitag 12. September 2003, 10:23

ersetzt man os.system durch os.popen, dann ist auch das nervige cdm.exe Fenster weg.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Freitag 12. September 2003, 14:13

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.
CapJo
User
Beiträge: 26
Registriert: Donnerstag 27. April 2006, 13:17

Mittwoch 3. Mai 2006, 15:20

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.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Donnerstag 4. Mai 2006, 07:54

Du nimmst nicht os.system().

:roll:

Die Lösung steht sogar im thread.
CapJo
User
Beiträge: 26
Registriert: Donnerstag 27. April 2006, 13:17

Donnerstag 4. Mai 2006, 09:22

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 ...
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 4. Mai 2006, 10:43

Ich würde allerdings subprocess nehmen: [wiki]Neue Features#Subprocess[/wiki] 8)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Donnerstag 4. Mai 2006, 21:48

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. :-)
Antworten