Ich schreibe ein Python-Skript, um eine maschinenlesbare Datei zu verarbeiten und einen lesbaren Bericht über die darin enthaltenen Daten auszugeben.
Ich möchte die Möglichkeit geben, die Daten an stdout (-s)
(standardmäßig) oder an eine txt (-t)
oder csv (-c)
Datei auszugeben. Ich würde gerne einen Schalter für das Standardverhalten haben, wie viele Befehle tun.
In Usage:
möchte ich etwas wie script [-s | -c | -t] input file
sehen und -s
als Standard haben, wenn keine Argumente übergeben werden.
Ich habe derzeit (für die relevanten Argumente, in Kürze):
%Vor% Wenn also keiner von -s
, -t
oder -c
gesetzt ist, wird stdout (-s)
auf True gesetzt, genau wie wenn -s
übergeben wurde.
Gibt es einen besseren Weg, dies zu erreichen? Oder würde ein anderer Ansatz aus irgendeinem Grund allgemein als "besser" betrachtet werden?
Hinweis: Ich verwende Python 3.5.1 / 2 und mache mir keine Sorgen über die Kompatibilität mit anderen Versionen, da es derzeit nicht geplant ist, dieses Skript mit anderen zu teilen. Es ist einfach, mein Leben einfacher zu machen.
Sie könnten jede Ihrer Aktionen die gleiche Variable aktualisieren lassen und stdout als Standardwert für diese Variable angeben.
Betrachten Sie dieses Programm:
%Vor%Ihr Code könnte wie folgt aussehen:
%Vor% Anstatt willkürlich eines der .add_argument()
s zu wählen, um den Standardtyp anzugeben, können Sie mit parser.set_defaults()
den Standardtyp angeben.
Anstatt den Typ als Aufzählungswert anzugeben, können Sie eine aufrufbare Nachricht in den Typ speichern und dann die aufrufbare Funktion aufrufen:
%Vor%Tags und Links python argparse python-3.x