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
programm mit argumenten aufrufen
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Meinst Du sowas?:
PS: sys.argv[0] enthält den Namen des Scripts, alle weiteren Elemente in argv sind die Kommandozeilenargumente.
Gruß
mawe
Meinst Du sowas?:
Code: Alles auswählen
import sys
x = sys.argv[1]
print x
Gruß
mawe
das kann ich doch sicher auch mit
machen, oder?
mfg
Olf
Code: Alles auswählen
if sys.argv[1] == "-o":
pass
elif sys.argv[1] == "-e":
pass
mfg
Olf
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.
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.
Viel besser als getopt ist IMHO optparse, was früher optik hieß:
http://python.org/doc/current/lib/module-optparse.html
fs111
http://python.org/doc/current/lib/module-optparse.html
fs111
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:
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?
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
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?
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 ;-).
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 ;-).