Seite 1 von 1

programm mit argumenten aufrufen

Verfasst: Samstag 5. Juni 2004, 18:01
von DER Olf
hi.

was ich mich, seitdem ich linux benutze immer wieder frage:

was muss ich in mein script schreiben, damit ich es mit einem argument aufrufen kann, z.b. einer datei, und diese dann geladen wird?

beispiel:

python mein_programm.py test.txt

bisher hab ich es immer noch mit einer eingabe gelöst:
raw_input("Den Dateinamen eingeben: ")


mfg

Olf

Verfasst: Samstag 5. Juni 2004, 18:13
von mawe
Hi!

Meinst Du sowas?:

Code: Alles auswählen

import sys
x = sys.argv[1]
print x
PS: sys.argv[0] enthält den Namen des Scripts, alle weiteren Elemente in argv sind die Kommandozeilenargumente.

Gruß

mawe

Verfasst: Samstag 5. Juni 2004, 19:03
von DER Olf
genau.....danach hab ich gesucht.

danke!!

Verfasst: Samstag 5. Juni 2004, 19:11
von Milan
Hi. Noch interessanter dürfte für dich das Modul getopt sein... damit kannst du deinen Progammen beibringen, sich mit wirklichen Optionen aufrufen zu lassen...

Verfasst: Samstag 5. Juni 2004, 20:17
von DER Olf
das kann ich doch sicher auch mit

Code: Alles auswählen

if sys.argv[1] == "-o":
    pass
elif sys.argv[1] == "-e":
    pass
machen, oder?

mfg

Olf

Verfasst: Samstag 5. Juni 2004, 20:24
von hans
kannst du, aber bei einigen Programmen sind die Optionen -abc gleich beduetend mit -a -b -c. Das dürfte dann mit deinem Lösungsvorschlag schwierig werden.

Hans

Verfasst: Samstag 5. Juni 2004, 20:26
von Milan
Hi. Nicht wirklich. Denn du weißt ja nicht, in welcher Reihenfolge die Parameter angegeben werden. Möglich sind z.B.:
python mein_programm.py -o -e
python mein_programm.py -e -o
python mein_programm.py -oe
python mein_programm.py -eo

etc.

Mal ist len(sys.argv)==3 und mal 2 und trotzdem wurden immer dieselben optionen übergeben. Außerdem ermöglicht getopt die Übergabe von "richtigen" Optionen (--help). Für Mehr als nur ein Parameter empfiehlt es sich also, getopt zu benutzen. Für deine Belange oben muss man dass aber nicht unbedingt machen.

Verfasst: Sonntag 6. Juni 2004, 10:21
von DER Olf
danke.
das mit dem getopt werd ich mir mal merken, jetzt reicht erstmal noch sys.argv aus.

mfg

Olf

Verfasst: Sonntag 6. Juni 2004, 16:53
von fs111
Viel besser als getopt ist IMHO optparse, was früher optik hieß:

http://python.org/doc/current/lib/module-optparse.html

fs111

Verfasst: Sonntag 6. Juni 2004, 20:09
von DER Olf
hm..........der code sieht schonmal viel besser aus als mit getopt!!!
aber wie gesagt, im moment noch belanglos...

mfg

Olf

Verfasst: Samstag 12. Juni 2004, 15:00
von NOTZE
Also ich verwende auch gerade das Modul optparse und ich muss sagen es
ist recht einfach damit zu arbeiten und ich denke es ist einfacher als getopt.

€dit:
Wenn ich jetzt die Option -f erstelle als zum aufrufen einer datei und dieser parameter
wird nicht angegeben was wird dann übergeben?
ich hatte schon sowas hier:

Code: Alles auswählen

if options.filename == "":
		#etwas code
		
aber das geht irgendwie nicht

und dann noch eine frage: Wie kann ich denn jetzt noch eine kurze beschreibung
des Programmes hinzufügen wenn --help aufgerufen wird, wie bei ls oder so?

Verfasst: Samstag 20. September 2008, 13:12
von arghargh
Ich habe gerade getopt von

http://www.diveintopython.org/scripts_a ... l#d0e26982

versucht, aber unter Windows scheint das nicht zu funktionieren, wenn man das Skript direkt aufruft, und cmd den Aufruf des Interpreters überlässt.

Kann das sein oder liegt der Fehler bei mir?

Edit:

optparse klappt auf Anhieb. Danke für den Tipp (auch wenn er schon 4 Jahre alt ist ;-).