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

Commandline Befehl unter Python absetzen.

Beitragvon 2bock » 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

Habs geschafft

Beitragvon 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

Verbesserung

Beitragvon 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

Re: Verbesserung

Beitragvon Milan » 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

Beitragvon CapJo » 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

Beitragvon Mad-Marty » 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

Re: Verbesserung

Beitragvon CapJo » 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: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » 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

Re: Verbesserung

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder