Arguments Pycharm et sys.argv

89

J'essaye de déboguer un script qui prend des arguments de ligne de commande comme entrée. Les arguments sont des fichiers texte dans le même répertoire. Le script obtient les noms de fichiers de la liste sys.argv. Mon problème est que je ne peux pas lancer le script avec des arguments dans pycharm.

J'ai essayé d'entrer des arguments dans le champ "Paramètres du script" dans le menu "Exécuter"> "Modifier la configuration" comme ceci:

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

Mais cela n'a pas fonctionné. Comment lancer mon script avec des arguments?

PS je suis sur Ubuntu

YKY
la source

Réponses:

107

Dans PyCharm, les paramètres sont ajoutés dans le Script Parameterscomme vous l'avez fait, mais ils sont placés entre guillemets "" et sans spécifier les indicateurs d'interprétation comme -s. Ces drapeaux sont spécifiés dans la Interpreter optionsboîte.

Contenu de la boîte des paramètres de script:

"file1.txt" "file2.txt"

Drapeaux d'Interpeter:

-s

Ou, visuellement:

entrez la description de l'image ici

Ensuite, avec un simple fichier de test à évaluer:

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

Nous obtenons les paramètres que nous avons fournis (avec sys.argv[0]le nom du script bien sûr):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
Dimitris Fasarakis Hilliard
la source
Merci cela a fonctionné. De plus, il s'avère que j'aurais dû utiliser des guillemets "" au lieu de "".
YKY
3
Cela a été utile; mais pour clarifier, mon script python prend deux noms de fichiers comme paramètres, un pour -r et un pour -s (ou les deux ou un ou aucun). Ainsi mes paramètres de script ont été spécifiés comme [-p "prof_samples.txt" -r "resp_samples.txt"] sans options d'interpréteur.
harry
2
Je pense que cette réponse est obsolète car il n'y a passcript parameters
tisaconundrum
@tisaconundrum après vérification, pouvez-vous me dire quelle version de PyCharm vous utilisez? Je viens de télécharger la dernière version (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, construite le 1er septembre 2017) et je vois toujours l' Script parametersoption.
Dimitris Fasarakis Hilliard
Après avoir ajouté les valeurs de paramètre, cliquez sur APPLIQUER ou sur le bouton OK pour ne pas exécuter le code. Si je sauvegarde les configurations et exécute le code, les arguments ne sont toujours pas pris en compte dans le code python Pycharm
Praveen L
75

Pour le bien des autres qui se demandent comment accéder à cette fenêtre. Voici comment:

Vous pouvez y accéder en cliquant sur Select Run/Debug Configurations(à gauche de entrez la description de l'image ici) et en allant dans le Edit Configurations. Un gif fourni pour plus de clarté.

entrez la description de l'image ici

tisaconundrum
la source
1
Le court clip a été vraiment utile - merci! C'est ce que je déteste dans les choses gui. C'est comme une chasse aux œufs de Pâques alors que la ligne de commande vous suffit de le taper.
Shanemeister
C'était plus utile que le meilleur meilleur vote positif. Merci!
Aakash Basu le
12

Sur PyCharm Community ou Professional Edition 2019.1+ :

  1. Dans la barre de menu, cliquez sur Exécuter -> Modifier les configurations
  2. Ajoutez vos arguments dans la zone de texte Paramètres (par exemple file2.txt file3.txt, ou --myFlag myArg --anotherFlag mySecondArg)
  3. Cliquez sur Appliquer
  4. Cliquez sur OK
Giorgos Myrianthous
la source
11

En plus de la réponse de Jim (désolé pas assez de points de répétition pour faire un commentaire), je voulais juste souligner que les arguments spécifiés dans PyCharm n'ont pas de caractères spéciaux échappés, contrairement à ce que vous feriez sur la ligne de commande. Donc, alors que sur la ligne de commande, vous feriez:

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

le paramètre PyCharm serait:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
Paul Miller
la source
5

Notez que pour une raison inconnue, il n'est pas possible d'ajouter des arguments de ligne de commande dans la version PyCharm Edu. Cela ne peut être fait que dans les éditions Professional et Community.

Jan Bodnar
la source
3

Le premier paramètre est le nom du script que vous souhaitez exécuter. A partir du deuxième paramètre, ce sont les paramètres que vous souhaitez passer depuis votre ligne de commande. Voici un script de test:

from sys import argv

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

Et voici comment vous passez les paramètres d'entrée: 'Chemin vers votre script', 'Premier paramètre', 'Deuxième paramètre'

Disons que le chemin vers votre script est /home/my_folder/test.py, la sortie sera comme:

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

J'espère que cela aide car il m'a fallu un certain temps pour comprendre que les paramètres d'entrée sont séparés par des virgules.

Rumela Saraswati
la source
2

Ajoutez ce qui suit en haut de votre fichier Python.

import sys

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

Maintenant, vous pouvez simplement faire un clic droit sur le script Python.

Ahmed
la source
1

Je crois qu'il est inclus même dans la version Edu. Faites un clic droit sur le bouton fléché vert uni (Exécuter) et choisissez "Ajouter des paramètres".

Apprenant Py
la source
1

Cela fonctionne dans la version edu pour moi. Il ne m'a pas été nécessaire de spécifier une option -s dans les options de l'interpréteur.

Paramètres Pycharm pour l'exécution avec la ligne de commande

Awaa
la source