Ich versuche, ein Skript zu debuggen, das Befehlszeilenargumente als Eingabe verwendet. Argumente sind Textdateien im selben Verzeichnis. Das Skript erhält Dateinamen aus der sys.argv-Liste. Mein Problem ist, dass ich das Skript nicht mit Argumenten in pycharm starten kann.
Ich habe versucht, Argumente in das Feld "Skriptparameter" im Menü "Ausführen"> "Konfiguration bearbeiten" einzugeben.
-s'file1.txt', -s'file2.txt'
Aber es hat nicht funktioniert. Wie starte ich mein Skript mit Argumenten?
P.S. Ich bin auf Ubuntu
In PyCharm werden die Parameter wie Sie in Script Parameters
hinzugefügt, aber sie werden in doppelte Anführungszeichen""
eingeschlossen und ohne die Interpreter-Flags wie -s
anzugeben. Diese Flags werden im Feld Interpreter options
angegeben.
Inhalt der Skriptparameter-Box:
"file1.txt" "file2.txt"
Interpeter-Flags:
-s
Oder visuell:
Dann mit einer einfachen Testdatei zum Auswerten:
if __== "__main__":
import sys
print(sys.argv)
Wir erhalten die von uns angegebenen Parameter (wobei sys.argv[0]
natürlich den Skriptnamen enthält):
['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
Neben Jims Antwort (leider nicht genug Wiederholungspunkte, um einen Kommentar abzugeben), möchte ich nur darauf hinweisen, dass die in PyCharm angegebenen Argumente nicht Sonderzeichen enthalten, im Gegensatz zu dem, was Sie in der Befehlszeile ausführen würden. In der Befehlszeile würden Sie Folgendes tun:
python mediadb.py /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png
der PyCharm-Parameter wäre:
"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
Beachten Sie, dass es aus unbekannten Gründen nicht möglich ist, Befehlszeilenargumente in der PyCharm Edu-Version hinzuzufügen. Dies ist nur in den Editionen Professional und Community möglich.
Der erste Parameter ist der Name des Skripts, das Sie ausführen möchten. Ab dem zweiten Parameter sind es die Parameter, die Sie von Ihrer Befehlszeile aus übergeben möchten. Unten ist ein Testskript:
from sys import argv
script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second
Und so übergeben Sie die Eingabeparameter: 'Pfad zu Ihrem Skript', 'Erster Parameter', 'Zweiter Parameter'
Nehmen wir an, der Pfad zu Ihrem Skript lautet /home/my_folder/test.py. Die Ausgabe sieht folgendermaßen aus:
Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter
Ich hoffe, das hilft, da ich einige Zeit brauchte, um herauszufinden, dass die Eingabeparameter durch Kommas getrennt sind.
Fügen Sie Folgendes in Ihre Python-Datei ein.
import sys
sys.argv = [
__file__,
'arg1',
'arg2'
]
Jetzt können Sie einfach mit der rechten Maustaste auf das Python-Skript klicken.
Ich glaube, es ist sogar in der Edu-Version enthalten. Klicken Sie einfach mit der rechten Maustaste auf den durchgezogenen grünen Pfeil (Ausführen) und wählen Sie "Parameter hinzufügen".
Auf PyCharm CE 2019.1+:
file2.txt file3.txt
oder --myFlag myArg --anotherFlag mySecondArg
).