web-dev-qa-db-fra.com

Passer l'argument de ligne de commande à Python dans Eclipse (Pydev)

Je suis nouveau dans Python & Eclipse, et j'ai quelques difficultés à comprendre comment passer un argument de ligne de commande à un script exécuté dans Eclipse (Pydev).

Le lien suivant explique comment passer l'argument de ligne de commande à python.

Pour passer l'argument de ligne de commande au module argecho.py (code du lien ci-dessus),

#argecho.py
import sys

for arg in sys.argv: 1
    print arg

Je devrais taper dans python

[you@localhost py]$ python argecho.py             
argecho.py

ou

[you@localhost py]$ python argecho.py abc def     
argecho.py
abc
def

Comment passer les mêmes arguments à Python dans Eclipse (Pydev) ???

Merci !

24
newprint

Si vous voulez que votre programme demande des arguments de manière interactive, alors ils cessent d'être des arguments ligne de commande, en tant que tels. Cependant, vous pouvez le faire quelque chose comme ça (pour le débogage uniquement!), Ce qui vous permettra d'entrer de manière interactive des valeurs que le programme verra comme des arguments de ligne de commande.

import sys
sys.argv = raw_input('Enter command line arguments: ').split()

#Rest of the program here

Notez que la façon de faire d'Andrew est beaucoup meilleure. De plus, si vous utilisez python 3. *, il doit être input au lieu de raw_input,

10
Blue Peppers

Cliquez sur le bouton de lecture flèche vers le bas dans la barre d'outils -> exécuter les configurations -> (double-cliquez) Python Exécuter -> onglet Arguments sur le côté droit.

De là, vous pouvez remplir la zone de texte Arguments du programme:

enter image description here

57
Andrew White

Sélectionnez "Propriétés" - >> "Paramètres d'exécution/débogage".

Sélectionnez le fichier associé dans le panneau de droite, puis cliquez sur le bouton "Modifier". Il ouvrira les propriétés du fichier sélectionné. Il y a un onglet "Arguments".

2
BenH

Des années plus tard, et non Eclipse, mais une variante d'autres réponses à run my.py M=11 N=None ... en sh ou IPython:

import sys

# parameters --
M = 10
N = 20
...

# to change these params in sh or ipython, run this.py  M=11  N=None ...
for arg in sys.argv[1:]:
    exec( arg )
...
myfunc( M, N ... )

Voir One-line-arg-parse-for-flexible-testing-in-python sous Gist.github.com/denis-bz .

1
denis