Argomenti Pycharm e sys.argv


93

Sto cercando di 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 dall'elenco sys.argv. Il mio problema è che non riesco ad avviare lo script con argomenti in pycharm.

Ho provato a inserire argomenti nel campo "Parametri script" nel menu "Esegui"> "Modifica configurazione" in questo modo:

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

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

PS Sono su Ubuntu

Risposte:


112

In PyCharm i parametri vengono aggiunti Script Parameterscome hai fatto tu, ma sono racchiusi tra virgolette doppie "" e senza specificare i flag dell'interprete come -s. Questi flag sono specificati nella Interpreter optionscasella.

Contenuto della confezione dei parametri dello script:

"file1.txt" "file2.txt"

Bandiere interprete:

-s

Oppure, visivamente:

inserisci qui la descrizione dell'immagine

Quindi, con un semplice file di prova da valutare:

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

Otteniamo i parametri che abbiamo fornito ( sys.argv[0]tenendo ovviamente il nome dello script):

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

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

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

2
Penso che questa risposta sia script parameters
scaduta

@tisaconundrum dopo aver verificato questo, potresti dirmi quale versione di PyCharm stai utilizzando? Ho appena scaricato l'ultima (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, costruita il 1 ° settembre 2017) e vedo ancora l' Script parametersopzione.
Dimitris Fasarakis Hilliard

Dopo aver aggiunto i valori dei parametri, facendo clic sul pulsante APPLICA o OK non viene eseguito il codice. Se salvo le configurazioni ed eseguo il codice, gli argomenti continuano a non essere considerati nel codice Pycharm python
Praveen L

78

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

È possibile accedervi facendo clic su Select Run/Debug Configurations(a sinistra di inserisci qui la descrizione dell'immagine) e andando su Edit Configurations. Una gif ha fornito chiarezza.

inserisci qui la descrizione dell'immagine


1
La breve clip è stata davvero utile - grazie! Questo è quello che odio delle cose della gui. È come una caccia all'uovo di Pasqua mentre la riga di comando è sufficiente digitarla.
Shanemeister

Questo è stato più utile del migliore migliore votato. Grazie!
Aakash Basu

13

Su PyCharm Community o Professional Edition 2019.1+ :

  1. Dalla barra dei menu fare clic su Esegui -> Modifica configurazioni
  2. Aggiungi i tuoi argomenti nella casella di testo Parametri (ad esempio file2.txt file3.txt, o --myFlag myArg --anotherFlag mySecondArg)
  3. Fare clic su Applica
  4. Fare clic su OK

11

Oltre alla risposta di Jim (scusate non abbastanza punti di rep per fare un commento), volevo solo far notare che gli argomenti specificati in PyCharm non hanno caratteri speciali di escape, a differenza di quello che fareste sulla riga di comando. Quindi, mentre sulla riga 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"

5

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


3

Il primo parametro è il nome dello script che desideri 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 passare i parametri di input: "Path to your script", "First Parameter", "Second Parameter"

Diciamo che il percorso del tuo script è /home/my_folder/test.py, l'output sarà come:

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

Spero che questo aiuti perché mi ci è voluto un po 'di tempo per capire che i parametri di input sono separati da virgole.


2

Aggiungi quanto segue all'inizio del tuo file Python.

import sys

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

Ora puoi semplicemente fare clic con il pulsante destro del mouse sullo script Python.


1

Credo sia incluso anche nella versione Edu. Basta fare clic con il pulsante destro del mouse sul pulsante freccia verde solido (Esegui) e scegliere "Aggiungi parametri".


1

Per me funziona nella versione edu. Non era necessario per me specificare un'opzione -s nelle opzioni dell'interprete.

Parametri Pycharm per l'esecuzione con riga di comando

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.