2010-12-04 175 views
21

我是Python的新手& Eclipse,并且在理解如何将命令行参数传递给在Eclipse中运行的脚本(Pydev)时遇到一些困难。在Eclipse中传递命令行参数到Python脚本(Pydev)

The following link解释了如何将命令行参数传递给python脚本。

要通过命令行参数到模块argecho.py(从上面链路代码),

#argecho.py 
import sys 

for arg in sys.argv: 1 
    print arg 

我需要键入蟒控制台

[[email protected] py]$ python argecho.py    
argecho.py 

[[email protected] py]$ python argecho.py abc def  
argecho.py 
abc 
def 

如何我是否会将相同的参数传递给Eclipse中的Python脚本(Pydev)?

谢谢!

回答

10

如果你希望你的程序要求参数交互,那么它们就不再是命令行参数,因为这样的。但是你可以这样做(仅用于调试!),这将允许你交互地输入程序将看到的命令行参数的值。

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

#Rest of the program here 

需要注意的是安德鲁的做事方式是更好。另外,如果您使用的是python 3. *,应该是input而不是raw_input,

52

单击工具栏中的播放按钮向下箭头 - >运行配置 - >(双击)右侧的Python Run - > Arguments选项卡。

从那里,你可以填写程序参数文本框:

enter image description here

+2

是否有办法交互传递参数? – newprint 2010-12-04 21:01:15

+1

非天生。下一个最好的解决方案是从stdin中读取这是Blue Peppers推荐的内容。 – 2010-12-04 22:53:28

2

选择“属性” - >>“运行/调试设置”。

在右侧面板中选择相关文件,然后单击“编辑”按钮。它将打开选定文件的属性。有一个“参数”选项卡。

0

我所做的是:

以调试视角打开项目。 在控制台中,只要调试程序在断点处中断,就可以在“控制台”中键入python命令并按回车(或回车)。 没有“>>”符号,所以很难发现。

但我不知道为什么日食没有一个Python外壳:(

1

多年以后,并没有使用Eclipse, 但其他的答案中sh或IPython的一个变体来run my.py M=11 N=None ...

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 ...) 

请参阅下的One-line-arg-parse-for-flexible-testing-in-python

相关问题