【问题标题】:Passing Command line argument to Python program using IDLE? [duplicate]使用 IDLE 将命令行参数传递给 Python 程序? [复制]
【发布时间】:2011-06-19 15:53:27
【问题描述】:

我已经下载了一个 python 文件 xxxxxx.py,它应该在命令行上运行 打字:python xxxxxx.py filename1 filename2 并且应该将这两个文件作为参数。

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

谢谢

【问题讨论】:

  • 我不明白为什么人们坚持认为 IDLE 是有用的东西。
  • 拜托,你可以给我一些你认为对windows有用的IDE的建议。我将不胜感激
  • 您不会在运行时在 IDLE 中传递参数。只需在命令行中键入命令很容易。是什么阻止您在命令行中绑定python xxxxxx.py filename1 filename2?还是在命令行复制粘贴?还是使用向上箭头在命令行再次输入?
  • @S.Lott 如何从命令行使用断点进行调试?使用 IDLE,您可以轻松做到这一点
  • @Ignacio Vazquez-Abrams:我不能告诉所有人,但对我来说,主要原因是 IDLE 几乎可以在任何地方访问。这将是我快速向其他人展示/展示 Python 代码 sn-p 的首选工具。我在“PyCons”看到它被用于此目的。

标签: python command-line command-line-arguments python-idle


【解决方案1】:

这取决于您的 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 模块来调用程序。

【讨论】:

  • 我只想在运行 python 脚本时传递运行时的参数。有没有办法做到这一点?
  • @SaherAhwal 从 3.7.4 和 3.8.0b2 开始,使用 Run ... 在 Run 菜单上自定义。
【解决方案2】:

您可以从命令行执行此操作:

idle.py -r scriptname.py 在这里放参数

您可以尝试不同的 IDE,例如 ActivePython

或者你可以修补 IDLE:

http://bugs.python.org/issue5680

【讨论】:

  • 如果我在 Windows 上。我现在的路径是 C:\Python26...etc \ idlelib 所以我可以空闲运行。但是脚本在别的地方找不到,怎么办?
  • 没关系!我刚刚将 C:\Python26\Lib\idlelib 添加到高级系统设置中的路径
  • 只需在您的代码中修改 sys.argv。例如sys.argv = ['scriptname.py', 'arg1', 'arg2', 'arg3']
  • 问题 5680 的补丁修订版在 3.7.4 和 3.8.b2 中作为 Run => Run Customized。
猜你喜欢
  • 1970-01-01
  • 2010-11-06
  • 2020-01-01
  • 2014-04-27
  • 1970-01-01
  • 2010-10-04
  • 2018-10-16
  • 2017-11-19
  • 2018-01-14
相关资源
最近更新 更多