J'essaie de déboguer un script qui prend des arguments de ligne de commande en 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 de script" du menu "Exécuter"> "Modifier la configuration" comme suit:
-s'file1.txt', -s'file2.txt'
Mais cela n'a pas fonctionné. Comment lancer mon script avec des arguments?
P.S. Je suis sur Ubuntu
Dans PyCharm, les paramètres sont ajoutés dans le Script Parameters
comme vous l'avez fait, mais ils sont entre guillemets""
et sans spécifier les indicateurs Interpreter tels que -s
. Ces indicateurs sont spécifiés dans la zone Interpreter options
.
Contenu de la boîte de paramètres de script:
"file1.txt" "file2.txt"
Drapeaux d'interpéter:
-s
Ou, visuellement:
Ensuite, avec un simple fichier test pour évaluer:
if __== "__main__":
import sys
print(sys.argv)
Nous obtenons les paramètres que nous avons fournis (avec sys.argv[0]
contenant le nom du script bien sûr):
['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
En plus de la réponse de Jim (désolé, pas assez de reps pour faire un commentaire), je voulais simplement souligner que les arguments spécifiés dans PyCharm ont pas des 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"
Notez que pour une raison inconnue, il n'est pas possible d'ajouter des arguments de ligne de commande dans la version de PyCharm Edu. Cela ne peut être fait que dans les éditions Professional et Community.
Le premier paramètre est le nom du script que vous voulez exécuter. À partir du deuxième paramètre, ce sont les paramètres que vous souhaitez passer à partir de votre ligne de commande. Ci-dessous 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 d'accès à votre script', 'Premier paramètre', 'Second paramètre'
Disons que le chemin d'accès à votre script est /home/my_folder/test.py, le résultat sera le suivant:
Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter
J'espère que cela m'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.
Ajoutez ce qui suit en haut de votre fichier Python.
import sys
sys.argv = [
__file__,
'arg1',
'arg2'
]
Maintenant, vous pouvez simplement cliquer avec le bouton droit sur le script Python.
Je crois que c'est inclus même dans la version Edu. Cliquez simplement avec le bouton droit de la souris sur le bouton fléché vert (Run) et choisissez "Ajouter des paramètres".
Sur PyCharm CE 2019.1+:
file2.txt file3.txt
ou --myFlag myArg --anotherFlag mySecondArg
).