使用IDLE将命令行参数传递给Python程序?

8

我已经下载了一个名为xxxxxx.py的Python文件,它应该通过在命令行中输入以下内容来运行:python xxxxxx.py filename1 filename2,并将这两个文件作为参数。

我想知道是否有一种方法可以使用IDLE传递这些参数。除了设置sys.argv之外还有其他方法吗?

谢谢。


5
我不明白为什么人们坚持认为 IDLE 是有用的东西。 - Ignacio Vazquez-Abrams
请问您能否给我一些关于在Windows上使用的IDE的建议?我会非常感慕。 - Saher Ahwal
你在运行时不需要在IDLE中传递参数。只需在命令行中键入您的命令即可。有什么阻止您在命令行中键入python xxxxxx.py filename1 filename2?或者复制粘贴到命令行中?又或者使用上箭头再次在命令行中键入它? - S.Lott
@S.Lott,如何在命令行中使用断点进行调试?使用IDLE可以轻松实现。 - sgarg
@Ignacio Vazquez-Abrams:我不能代表每个人,但对我来说,主要原因是IDLE几乎无处不在。这将是我快速向他人说明/展示Python代码片段的首选工具。我在“PyCons”上看到它被用于这个目的。 - Nikita Vorontsov
从3.7.4和3.8.0b2开始,在“运行”菜单中使用“运行...自定义”。 - Terry Jan Reedy
2个回答

6

这取决于你的Python文件的内容。如果它是写得很好的,比如:

#! /usr/bin/env python

def process(files):
   for file in files:
       # ...

if __name__ == '__main__'
    # some error checking on sys.argv
    process(sys.argv[1:])
    sys.exit(0)

然后,您可以简单地导入Python文件并像这样运行它:
 import name_of_file

 # ...
       name_of_file.process([file1, file2, file3])
 # ...

所以,这取决于它是如何编写的。如果它的编写不好但你可以编辑它,我会重构它,使其可以用作库;否则,我会使用subprocess模块调用程序。


1
我只想在运行Python脚本时动态传递参数。有没有办法实现这个? - Saher Ahwal
从3.7.4和3.8.0b2开始,使用“在运行菜单上自定义”选项。@SaherAhwal - Terry Jan Reedy

4

您可以通过命令行执行以下操作:

idle.py -r scriptname.py 在此处放置参数

您可以尝试使用其他IDE,例如ActivePython。

或者您可以修补IDLE:

http://bugs.python.org/issue5680


如果我在Windows上,我的路径现在是C:\ Python26 ...等\ idlelib,所以我可以运行idle。但脚本在其他地方,因此找不到它,我该怎么办? - Saher Ahwal
没事了!我刚刚在高级系统设置中将C:\Python26\Lib\idlelib添加到路径中了。 - Saher Ahwal
1
只需在代码中修改 sys.argv。例如:sys.argv = ['scriptname.py', 'arg1', 'arg2', 'arg3'] - SomeGuyOnAComputer
问题5680的补丁修订版已经在3.7.4和3.8.b2中发布,现在称为“运行 => 运行自定义”。 - Terry Jan Reedy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接