649 Stimmen

Wie erhalte ich Zugang zu Befehlszeilenargumenten?

Ich verwende Python, um meine Projekteinstellungen zu erstellen, aber ich brauche Hilfe bei der Eingabe der Befehlszeilenargumente.

Ich habe das im Terminal ausprobiert:

$python myfile.py var1 var2 var3

In meiner Python-Datei möchte ich alle Variablen verwenden, die eingegeben werden.

847voto

SilentGhost Punkte 285785

Python-Tutorial erklärt es :

import sys

print(sys.argv)

Genauer gesagt, wenn Sie python example.py one two three :

>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']

253voto

Michael Dorner Punkte 14013

Ich empfehle dringend argparse das mit Python 2.7 und höher geliefert wird.

Le site argparse Modul reduziert den Boilerplate-Code und macht Ihren Code robuster, da das Modul alle Standardanwendungsfälle (einschließlich Unterbefehle) behandelt, die Hilfe und Verwendung für Sie generiert, die Benutzereingabe überprüft und reinigt - alles Dinge, um die Sie sich kümmern müssen, wenn Sie sys.argv Ansatz. Und es ist kostenlos (eingebaut).

Hier ein kleines Beispiel:

import argparse

parser = argparse.ArgumentParser("simple_example")
parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int)
args = parser.parse_args()
print(args.counter + 1)

und die Ausgabe für python prog.py -h

usage: simple_example [-h] counter

positional arguments:
  counter     counter will be increased by 1 and printed.

optional arguments:
  -h, --help  show this help message and exit

und die Ausgabe für python prog.py 1 Wie zu erwarten war:

2

235voto

Ryan M Punkte 15734

Um die sólo die Befehlszeilenargumente

(ohne den Namen der Python-Datei)

import sys

sys.argv[1:]

Le site [1:] ist eine slice beginnend mit dem zweiten Element (Index 1) und bis zum Ende der Argumentliste. Der Grund dafür ist, dass das erste Element der Name der Python-Datei ist und wir diesen entfernen wollen.

96voto

Charles P. Punkte 1737

Python-Code:

import sys

# main
param_1= sys.argv[1] 
param_2= sys.argv[2] 
param_3= sys.argv[3]  
print 'Params=', param_1, param_2, param_3

Anrufung:

$python myfile.py var1 var2 var3

Ausgabe:

Params= var1 var2 var3

30voto

ALLSYED Punkte 1357

Sie können verwenden sys.argv um die Argumente als Liste zu erhalten.

Wenn Sie auf einzelne Elemente zugreifen müssen, können Sie

sys.argv[i]  

wobei i ist Index, 0 gibt den Namen der Python-Datei an, die ausgeführt wird. Alle nachfolgenden Indizes sind die übergebenen Argumente.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X