Seite 1 von 1
Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:34
von The Hit-Man
Ich würde gerne meinem Pythonscript ein paar Parameter beim starten aus der Konsole mitgeben, das sollte so aus sehen:
Mein Frage ist nun, es könnte ja auch der param2 an erster Stelle stehen, oder vielleicht gar nicht angegeben sein. Ich glaube man nennt so etwas aus switche. Wie könnte man das in Python anstellen?
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:37
von .robert
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:49
von The Hit-Man
Wie ich die Parameter auslese, weiß ich. Jedoch weiß ich gerade nicht genau, wie ich die dann sortiere, also wenn auf ein mal der zweite Parameter als erstes eingetippt wird. Oder das der erste zum Beispiel ganz fehlt und nur der zweite angegeben wurde.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:55
von Pekh
Den Hinweis auf das Modul, das dir diese Arbeit abnimmt, hast du dort aber schon gesehen?
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:57
von cofi
Wenn man Python < 2.7 einsetzt, muss man allerdings auf `optparse` zurueckgreifen (falls man `argparse` nicht als zusaetzliches Modul installieren will)
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:58
von The Hit-Man
Das mit den regulären Ausdrücken? Wenn ja, das wollte ich eigentlich vermeiden, das zu nutzen.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 13:59
von cofi
The Hit-Man hat geschrieben:Das mit den regulären Ausdrücken? Wenn ja, das wollte ich eigentlich vermeiden, das zu nutzen.
Ich glaube du hast den falschen Abschnitt gelesen.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 14:03
von The Hit-Man
aha, dann wird es wohl argparse, sein.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 14:35
von The Hit-Man
ja, ich komme, da nen bischen ins schwitzen, will ja nur ein zwei Args auslesen. Mein Versuch sieht so aus. So ganz habe ich das Prinzip noch nicht verstanden.
Code: Alles auswählen
parser = argparse.ArgumentParser(description='Einstellungen zum kopieren.')
parser.add_argument('--stunde', type=int, default=0,
help='addieren der angegebenen Stunden zur lokalzeit ')
args = parser.parse_args()
Wie kann ich denn jetzt --stunden auslesen wenn es überhaupt gesetzt ist.
EDIT:
habs dann mit
auslesen können.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 15:20
von The Hit-Man
jetzt stehe ich schon wieder auf dem Schlauch. Das mit der Parameterübergabe --stunden 10, habe ich hinbekommen. jetzt brauche ich aber noch eine Option, mit -e. Wenn -e gesetzt ist, soll das Programm eine Endlosschleife starten. Ich habe es nur so weit hin bekommen, das ich die Option mit -e 1 starten kann. Allerdings wäre es eleganter, einfach -e anzugeben, oder ganz einfach weg zu lassen. Das bekomme ich irgendwie nicht hin.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 15:30
von cofi
Code: Alles auswählen
parser.add_argument('-e', '--endless', action='store_true')
sollte es tun.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 19:36
von The Hit-Man
Wenn man Python < 2.7 einsetzt, muss man allerdings auf `optparse` zurueckgreifen (falls man `argparse` nicht als zusaetzliches Modul installieren will)
ja, mußte ich zusätzlich auch noch

aber habe jetzt alles hin bekommen.
EDIT:
wo bekomme ich eigentlich gewahr, welche standart-imports ich bei den python-versionen nutzen kann?
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 19:57
von EyDu
The Hit-Man hat geschrieben:wo bekomme ich eigentlich gewahr, welche standart-imports ich bei den python-versionen nutzen kann?
Die vorhandenen Module stehen in der Dokumentation zur jeweiligen Python-Version.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 20:14
von cofi
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 22:06
von Leonidas
cofi hat geschrieben:Auch noch nuetzlich:
Was nicht funktioniert wenn man ``argparse`` in Python 2.6 nachinstalliert. Also: sowas bitte nicht machen. Version-Probing sollte man generell eher vermeiden.
Re: Parameterübergabe an Pythonprogramm
Verfasst: Freitag 27. August 2010, 22:16
von cofi
Das ist wahr. Der bessere Weg ist wohl:
Code: Alles auswählen
try:
import argparse
except ImportError:
...
else:
setup_argparse()