Argumenty Pycharm i sys.argv

89

Próbuję debugować skrypt, który przyjmuje argumenty wiersza poleceń jako dane wejściowe. Argumenty to pliki tekstowe w tym samym katalogu. Skrypt pobiera nazwy plików z listy sys.argv. Mój problem polega na tym, że nie mogę uruchomić skryptu z argumentami w pycharm.

Próbowałem wprowadzić argumenty w polu „Parametry skryptu” w menu „Uruchom”> „Edytuj konfigurację”, jak poniżej:

-s'file1.txt', -s'file2.txt'

Ale to nie zadziałało. Jak uruchomić skrypt z argumentami?

PS Jestem na Ubuntu

YKY
źródło

Odpowiedzi:

107

W PyCharm parametry są dodawane Script Parameterstak, jak zrobiłeś, ale są zawarte w podwójnych cudzysłowach "" i bez określania flag interpretera, takich jak -s. Te flagi są określone w Interpreter optionspolu.

Zawartość pola Parametry skryptu:

"file1.txt" "file2.txt"

Flagi Interpeter:

-s

Lub wizualnie:

wprowadź opis obrazu tutaj

Następnie za pomocą prostego pliku testowego do oceny:

if __name__ == "__main__":
    import sys
    print(sys.argv)

Otrzymujemy podane przez nas parametry ( sys.argv[0]oczywiście trzymając nazwę skryptu):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
Dimitris Fasarakis Hilliard
źródło
Dzięki, zadziałało. Ponadto okazuje się, że powinienem był użyć cudzysłowów „” zamiast „”.
YKY
3
To było pomocne; ale żeby wyjaśnić, mój skrypt w Pythonie przyjmuje dwie nazwy plików jako parametry, jedną dla -r i jedną dla -s (lub obie lub jedną lub żadną). Więc parametry mojego skryptu zostały określone jako [-p "prof_samples.txt" -r "resp_samples.txt"] bez opcji interpretera.
harry
2
Myślę, że ta odpowiedź jest nieaktualna, ponieważ nie mascript parameters
tisaconundrum
@tisaconundrum po sprawdzeniu tego, czy możesz mi powiedzieć, jakiej wersji PyCharm używasz? Właśnie pobrałem najnowszą wersję (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, zbudowaną 1 września 2017 r.) I nadal widzę tę Script parametersopcję.
Dimitris Fasarakis Hilliard
Po dodaniu wartości parametrów kliknięcie przycisku ZASTOSUJ lub OK nie uruchamia kodu. Jeśli zapiszę konfiguracje i uruchomię kod, nadal argumenty nie są uwzględniane w kodzie Pycharm Python
Praveen L
75

Ze względu na innych, którzy zastanawiają się, jak dostać się do tego okna. Oto jak:

Możesz uzyskać do niego dostęp, klikając Select Run/Debug Configurations(po lewej stronie wprowadź opis obrazu tutaj) i przechodząc do Edit Configurations. GIF zapewniający przejrzystość.

wprowadź opis obrazu tutaj

tisaconundrum
źródło
1
Krótki klip okazał się pomocny - dziękuję! Tego właśnie nienawidzę w rzeczach z gui. Jej jak Egg Hunt Easter natomiast linii poleceń wystarczy wpisać go w.
Shanemeister
Było to bardziej pomocne niż najlepszy głosowany. Dzięki!
Aakash Basu
12

W PyCharm Community lub Professional Edition 2019.1+ :

  1. Na pasku menu kliknij Uruchom -> Edytuj konfiguracje
  2. Dodaj argumenty w polu tekstowym Parametry (na przykład file2.txt file3.txtlub --myFlag myArg --anotherFlag mySecondArg)
  3. Kliknij Zastosuj
  4. Kliknij OK
Giorgos Myrianthous
źródło
11

Oprócz odpowiedzi Jima (przepraszam za mało punktów rep, aby zrobić komentarz), chciałem tylko zwrócić uwagę, że argumenty określone w PyCharm nie mają znaków specjalnych, w przeciwieństwie do tego, co zrobiłbyś w linii poleceń. Tak więc, mając na uwadze, że w wierszu poleceń zrobiłbyś:

python mediadb.py  /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png

parametr PyCharm wyglądałby tak:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
Paul Miller
źródło
5

Zauważ, że z jakiegoś nieznanego powodu nie jest możliwe dodanie argumentów wiersza poleceń w wersji PyCharm Edu. Można to zrobić tylko w wersjach Professional i Community.

Jan Bodnar
źródło
3

Pierwszy parametr to nazwa skryptu, który chcesz uruchomić. Począwszy od drugiego parametru, są to parametry, które chcesz przekazać z linii poleceń. Poniżej znajduje się skrypt testowy:

from sys import argv

script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second

A oto sposób przekazywania parametrów wejściowych: „Ścieżka do skryptu”, „Pierwszy parametr”, „Drugi parametr”

Powiedzmy, że ścieżka do twojego skryptu to /home/my_folder/test.py, wynik będzie taki:

Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter

Mam nadzieję, że to pomoże, ponieważ zajęło mi trochę czasu, aby dowiedzieć się, że parametry wejściowe są oddzielone przecinkami.

Rumela Saraswati
źródło
2

Dodaj następujące elementy na początku pliku Python.

import sys

sys.argv = [
    __file__,
    'arg1',
    'arg2'
]

Teraz możesz po prostu kliknąć prawym przyciskiem myszy skrypt Pythona.

Ahmed
źródło
1

Wierzę, że jest zawarty nawet w wersji Edu. Wystarczy kliknąć prawym przyciskiem myszy przycisk z zieloną strzałką (Uruchom) i wybrać „Dodaj parametry”.

Py Learner
źródło
1

U mnie działa w wersji edu. Nie było potrzeby określania opcji -s w opcjach interpretera.

Parametry Pycharm do uruchamiania z wierszem poleceń

Awaa
źródło