无法使用 python 中的 sys.argv 获取命令行参数

Can't get command line argument using sys.argv in python

我尝试将命令行参数传递给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:

已解决:

有两种解决方案:

  1. c:\...\python\python.exe Cat.py small.txt

  2. solution two

如果您尝试使用此命令 运行 您的代码 Cat.py small.txt,则 sys.argv[0] = 'small.txt' 并且没有 sys.argv[1]。尝试 python Cat.py small.txt。在这种情况下,'Cat.py' 是您的 sys.argv[0]small.txtsys.argv[1]

有人反映过这种问题here

您可以尝试通过直接调用 python 可执行文件来启动它吗?这似乎解决了一些用户的问题。

C:\...\python.exe Cat.py small.txt

编辑:

如果 python 配置正确,您可以 运行 :

python.exe Cat.py small.txt