我尝试将命令行参数传递给win7下的python脚本,但sys.argv的长度总是等于1。这是否意味着它无法识别这个论点? 这是代码和命令行:
import sys
def Cat(filename):
f = open(filename, 'r')
for line in f:
print(line)
def main():
if len(sys.argv) > 1:
Cat(sys.argv[1])
else:
print(input('enter argument: '))
if __name__ == '__main__':
main()
这是我的命令行:
F:\Google's_python_class\part1>Cat.py small.txt
但结果是
enter argument:
解决:
有两种解决方案:
c:\...\python\python.exe Cat.py small.txt
答案 0 :(得分:4)
有些人报告了此类问题here
你可以通过直接调用python可执行文件来尝试启动它吗?这似乎解决了一些用户的问题。
C:\...\python.exe Cat.py small.txt
编辑:
如果正确配置了python,则可以运行:
python.exe Cat.py small.txt
答案 1 :(得分:0)
如果您尝试使用此命令Cat.py small.txt
然后sys.argv[0] = 'small.txt'
运行代码,则没有sys.argv[1]
。试试python Cat.py small.txt
。在这种情况下,'Cat.py'
是sys.argv[0]
而small.txt
是sys.argv[1]