python command line Argumente, die in Haupt -, skip-Skript-name
Dies ist mein Skript
def main(argv):
if len(sys.argv)>1:
for x in sys.argv:
build(x)
if __name__ == "__main__":
main(sys.argv)
also von der Kommandozeile aus zu schreiben ich python myscript.py commandlineargument
Ich will es überspringen myscript.py
und einfach ausführen commandlineargument
durch commandlineargument(n)
so, ich verstehe, dass meine for-Schleife nicht für dieses Konto, aber wie mache ich es tun?
Wenn die
Auch müssen Sie nicht die
Ich habe ein anderes
main
- Funktion nimmt ein argv
parameter, es sollte wohl , parameter, anstatt ihn zu ignorieren und mit sys.argv
statt...Auch müssen Sie nicht die
if
check überhaupt. Wenn es keine Argumente, die Schleife wird erfolgreich ausgeführt 0 Male, so lassen Sie es tun.Ich habe ein anderes
InformationsquelleAutor CQM | 2013-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit sys.argv ist eine Liste, die Sie verwenden können, schneiden
sys.argv[1:]
:Aber, wenn Sie nur ein Skript-parameter, nur bekommen es durch index:
sys.argv[1]
. Aber, sollten Sie überprüfen, ob die Länge dersys.argv
ist mehr als 1 und einen Fehler auslösen, wenn es nicht, zum Beispiel:InformationsquelleAutor alecxe
Die richtige Antwort ist, zu lernen und zu verwenden
argparse
, obwohl.Es ist das, was für arg parsing (es sei denn, Sie müssen
cliff
). Es hat eine große API. Es ist nicht veraltet wieoptparse
. Es vereinheitlicht den look+feel in Ihrem Skript.InformationsquelleAutor jhermann