无法使用 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:
已解决:
有两种解决方案:
c:\...\python\python.exe Cat.py small.txt
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.txt
是 sys.argv[1]
有人反映过这种问题here
您可以尝试通过直接调用 python 可执行文件来启动它吗?这似乎解决了一些用户的问题。
C:\...\python.exe Cat.py small.txt
编辑:
如果 python 配置正确,您可以 运行 :
python.exe Cat.py small.txt
我尝试将命令行参数传递给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
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.txt
是 sys.argv[1]
有人反映过这种问题here
您可以尝试通过直接调用 python 可执行文件来启动它吗?这似乎解决了一些用户的问题。
C:\...\python.exe Cat.py small.txt
编辑:
如果 python 配置正确,您可以 运行 :
python.exe Cat.py small.txt