Seite 1 von 1

Modul 'os': Ausführen von Programmen

Verfasst: Dienstag 8. Mai 2007, 16:19
von Markus12
Hi,
ich hab ein Problem mit dem Modul os.
Ich habe bereits eine Internet-Seite gefunden, auf der viele Funktionen stehen, darunter auch, nach was ich gesucht habe, - ein Befehl mit dem ich Programm ausführen kann.

Ich hab das ganze mal mit dem Befehl versucht:

Code: Alles auswählen

import os

os.execv("C:\Programme\Windows Media Player\wmplayer.exe",('0','1'))

Das klappt. Aber wenn ich vorne die Klammer öffne, sagt er mir, dass er einen Pfad und ein Argument haben möchte, wobei das Argument ein Tuple oder eine Liste sein muss. Ich habe da jetzt irgendwas hingeschrieben, mit dem es aber gepasst hat.

Meine Frage:

Weiß jemand, was er als Argument genau haben möchte? Was soll im Tuple(Liste) stehen?

Und was ich eigentlich wollte, war, dass ich Python- Scripte ausführen wollte. Wie kann ich das nun machen? Welches Argument brauche ich dafür und gehen nur graphsiche Scripte??


Danke!

Verfasst: Dienstag 8. Mai 2007, 16:31
von BlackJack
Im zweiten Argument stehen die Argumente für das Programm, wobei an erster bzw. nullter Stelle das Programm selbst nochmal stehen sollte! Also im Grunde der gleiche Aufbau wie `sys.argv`. Da stehen die Argumente drin, die ein anderes Programm, zum Beispiel die Konsole, mal Deinem Python-Programm mitgegeben haben.

Wenn das Programm ohne Argumente gestartet werden soll, dann steht im zweiten Argument nur noch einmal das erste in einer Liste oder einem Tupel.

Code: Alles auswählen

command = '/bin/ls'
os.execv(command, (command,))
Oder mit Argumenten:

Code: Alles auswählen

command = '/bin/ls'
os.execv(command, (command, '-l', '--color', 'always', '*.py'))

Verfasst: Dienstag 8. Mai 2007, 16:45
von Markus12
ah ok. Und was gibt die Konsole einem solchen Programm mit? :

Code: Alles auswählen

import os

pfad='C:\Dokumente und Einstellungen\Markus Naumann\Desktop\programm1'

os.execv(pfad,(pfad,))

Was sollte da im 2. (nach der zählung dem 1.) stehen??

Danke für deine Nachricht!

Verfasst: Dienstag 8. Mai 2007, 17:40
von lunar
Wenn es dir nur darum geht ein Programm auszuführen, dann benutzt du am besten das subprocess Modul. Näheres steht in der Doku: http://docs.python.org/lib/node529.html

Verfasst: Dienstag 8. Mai 2007, 17:52
von Markus12
Danke, aber weiß jemand, wie man das benutzt????

Aus dieser Dokumentation versteht man überhaupt nichts.

Verfasst: Dienstag 8. Mai 2007, 17:54
von Rebecca
[wiki]Neue Features#Subprocess[/wiki]