197 Stimmen

sys.argv[1] Bedeutung im Skript

Ich bin derzeit selbst Python zu lehren und war gerade fragen (in Bezug auf mein Beispiel unten) in vereinfachter Form, was die sys.argv[1] vertritt. Bittet sie einfach um eine Eingabe?

#!/usr/bin/python3.1

# import modules used here -- sys is a very standard one
import sys

# Gather our code in a main() function
def main():
  print ('Hello there', sys.argv[1])
  # Command line args are in sys.argv[1], sys.argv[2] ..
  # sys.argv[0] is the script name itself and can be ignored

# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
  main()

3 Stimmen

Dies ist nicht Teil der Frage, und es ist sehr alt, aber das Modul argparse ist wahrscheinlich besser geeignet für das, was Sie vorhaben, und zwar nach diese

5voto

TartanLlama Punkte 61344

Sys.argv ist eine Liste, die den Skriptpfad und die Befehlszeilenargumente enthält; d.h. sys.argv[0] ist der Pfad des Skripts, das Sie ausführen, und alle folgenden Mitglieder sind Argumente.

4voto

JBJ Punkte 31

So übergeben Sie Argumente an Ihr Python-Skript beim Ausführen eines Skripts über die Befehlszeile

python create_thumbnail.py test1.jpg test2.jpg

hier, Skriptname - create_thumbnail.py, Argument 1 - test1.jpg, Argument 2 - test2.jpg

In dem Skript create_thumbnail.py verwende ich

sys.argv[1:]

was mir die Liste der Argumente liefert, die ich in der Befehlszeile übergeben habe ['test1.jpg', 'test2.jpg']

2voto

Jaidee Punkte 813

sys.argv ist ein Attribut des sys Modul. Es gibt die Argumente an, die der Datei in der Befehlszeile übergeben werden. sys.argv[0] gibt das Verzeichnis an, in dem sich die Datei befindet. sys.argv[1] gibt das erste in der Befehlszeile übergebene Argument zurück. Nehmen wir an, wir haben eine Datei example.py.

beispiel.py

import sys # Importing the main sys module to catch the arguments
print(sys.argv[1]) # Printing the first argument

Hier in der Eingabeaufforderung, wenn wir dies tun:

python example.py

Es wird ein Indexfehler in Zeile 2 ausgegeben. Denn es ist noch kein Argument übergeben worden. Sie können die Länge der vom Benutzer übergebenen Argumente sehen, indem Sie if len(sys.argv) >= 1: # Code . Wenn wir die Datei example.py mit einem Argument ausführen

python example.py args

Er druckt:

args

Denn das war das erste Argument! Nehmen wir an, wir haben es mit PyInstaller zu einer ausführbaren Datei gemacht. Wir würden dies tun:

example argumentpassed

Er druckt:

argumentpassed

Es ist sehr hilfreich, wenn Sie einen Befehl im Terminal eingeben. Überprüfen Sie zunächst die Länge der Argumente. Wenn keine Argumente übergeben werden, machen Sie den Hilfetext.

1voto

geekidharsh Punkte 3301

sys .argv zeigt die Kommandozeilenargumente an, die beim Ausführen eines Skripts übergeben werden, oder man kann sagen, dass sys.argv die Kommandozeilenargumente speichert, die in Python übergeben werden, wenn es vom Terminal aus ausgeführt wird.

Versuchen Sie dies einfach:

import sys
print sys.argv

argv speichert alle übergebenen Argumente in einer Python-Liste. Das obige Beispiel gibt alle übergebenen Argumente aus, wenn das Skript ausgeführt wird.

Versuchen Sie nun, Ihre Datei filename.py wie folgt auszuführen:

python filename.py example example1

werden 3 Argumente in einer Liste ausgegeben.

sys.argv[0] #is the first argument passed, which is basically the filename. 

Ähnlich verhält es sich mit argv 1 ist das erste übergebene Argument, in diesem Fall "Beispiel".

Eine ähnliche Frage wurde bereits gestellt ici btw. Hoffentlich hilft das!

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