Frage Python sys.argv und argparse


Ich habe nach Möglichkeiten gesucht, Argumentwerte zu einem Skript hinzuzufügen, wenn ich es über die Befehlszeile ausführe. Die beiden Pakete, die ich gefunden habe, scheinen sys.argv und argparse zu sein.

Ich möchte auch, wenn möglich, eine Hilfefunktion hinzufügen können.

Kann jemand den Unterschied zwischen den beiden erklären und vielleicht, was für jemanden einfacher wäre?


6
2018-02-12 14:43


Ursprung


Antworten:


sys.argv ist einfach eine Liste der Kommandozeilenargumente.

argparse ist ein voll funktionsfähiger Kommandozeilen-Parser, der im Allgemeinen analysiert  sys.argv und gibt Ihnen die Daten in einer viel einfacheren Art und Weise zurück.

Wenn Sie etwas komplizierteres tun als ein Skript, das einige Positionsargumente akzeptiert, sollten Sie einen Parser verwenden. Abhängig von Ihrer Python-Version sind 3 in der Python-Standardbibliothek verfügbar (getopt, optparse und argparse) und argparse ist bei weitem das beste.


12
2018-02-12 14:49



Ich würde empfehlen, dass Sie argparse für Ihre Befehlszeilenargumente aus zwei Gründen verwenden. Das Erstellen eines Args ist sehr einfach, wie in der Dokumentation erwähnt, und zweitens, weil Sie eine Hilfefunktion haben möchten, die argparse Ihnen kostenlos zur Verfügung stellt.

Dokumentation: https://docs.python.org/2/howto/argparse.html

Lass es mich wissen, wenn du mehr Hilfe brauchst.


2
2018-02-12 14:48