2015-10-13 14 views
34

Sto provando a eseguire il debug di uno script che accetta gli argomenti della riga di comando come input. Gli argomenti sono file di testo nella stessa directory. Lo script ottiene i nomi dei file dalla lista sys.argv. Il mio problema è che non posso avviare lo script con argomenti in pycharm.Argomenti Pycharm e sys.argv

ho cercato di inserire dei parametri nel campo "Parametri di script" in "Esegui" del menu> "Modifica configurazione" in questo modo:

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

Ma non ha funzionato. Come lancio il mio script con argomenti?

P.S. Sono su Ubuntu

risposta

42

In PyCharm sono aggiunti i parametri nel Script Parameters come hai fatto tu, ma, sono racchiusi tra virgolette"" e senza specificare le bandiere Interprete come -s. Questi flag sono specificati nella casella Interpreter options.

Parametri script contenuto della confezione:

"file1.txt" "file2.txt" 

Interpeter bandiere:

-s 

Oppure, visivamente:

enter image description here

poi, con un semplice file di prova per valutare:

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

otteniamo i parametri che abbiamo fornito (con sys.argv[0] tenendo il nome dello script, naturalmente):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt'] 
+0

Grazie ha funzionato. Inoltre, risulta che avrei dovuto usare "" virgolette invece di "". – YKY

+0

Sì, il mio male, fammelo specificare nella risposta per ulteriore completezza. –

+2

Questo è stato utile; ma per chiarire, il mio script python prende due nomi di file come parametri, uno per -r e uno per -s (o entrambi o uno o nessuno dei due). Quindi i miei parametri di script sono stati specificati come [-p "prof_samples.txt" -r "resp_samples.txt"] senza opzioni di interprete. – hangzhouharry

7

Oltre alla risposta di Jim (purtroppo non punti rep abbastanza per fare un commento), volevo solo precisare che gli argomenti specificati in PyCharm do non hanno caratteri speciali sfuggiti, a differenza di ciò che si farebbe sulla riga di comando. Così, mentre sulla linea di comando faresti:

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

il parametro PyCharm sarebbe:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png" 
16

Per il bene degli altri che si stanno chiedendo su come arrivare a questa finestra. Ecco come:

È possibile accedere a questo facendo clic su Select Run/Debug Configurations (a sinistra di enter image description here) e andare al Edit Configurations. Una gif di fornita per chiarezza.

enter image description here

2

Il primo parametro è il nome dello script che si desidera eseguire. Dal secondo parametro in poi sono i parametri che vuoi passare dalla tua riga di comando.Di seguito è riportato uno script di test:

from sys import argv 

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

Ed ecco come si passa i parametri d'ingresso: 'Percorso per lo script', 'primo parametro', 'il secondo parametro'

Diciamo che il percorso di lo script è /home/my_folder/test.py, l'uscita sarà come:

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

Spero che questo aiuta come mi ci sono voluti qualche tempo per capire i parametri di input sono separate da virgole.

1

Si noti che per qualche motivo sconosciuto, non è possibile aggiungere argomenti della riga di comando nella versione PyCharm Edu. Può essere fatto solo nelle edizioni Professional e Community.