好的,我找到了三个类似的线程,但它们都处理 C# 中的命令行参数。我的问题是,如何将命令行参数从 cmd 窗口读入 IronPython?
我在这些文档中阅读第 2.1.1 节的方式应该与 CPython 相同——只需导入sys
模块并从sys.argv
数组中获取值。它没有。这是我尝试过的测试代码(文件 z.py):
import sys
print sys.argv[0]
print sys.argv[1]
当我将其称为z.py testing
使用 CPython (2.7.4) 解释器时,我得到了您所期望的:
E:\>c:\python27\python.exe z.py testing
z.py
testing
E:\>
但是当我使用 IronPython (2.7.3) 解释器调用它时,我得到:
Traceback (most recent call last):
File "E:\z.py", line 3, in <module>
IndexError: index out of range: 1
如果我注释掉第 3 行并使用 IronPython 重试,它运行良好:
E:\>z.py testing
E:\z.py
E:\>
所以sys.argv[0]
被分配了,但就是这样——命令行参数永远不会作为附加元素出现在sys.argv
.
因此,要么我缺少一些额外的步骤,要么sys.argv
在 IronPython 中不能用于此目的。无论哪种方式,我如何让模块识别参数?