当我在python中有以下代码部分时,假设我们使用输入文件input.txt作为第一个命令行参数执行此python文件。
import os
import sys
with open(sys.argv[1],"r") as input:
假设python文件的名称是file.py,而input.txt是这个的参数,所以命令如下,
>>file.py input.txt
我收到以下错误:
Traceback (most recent call last):
File "C:\Users\hdutta\Desktop\file.py", line 3, in <module>
with open(sys.argv[1],"r") as input:
IOError: [Errno 2] No such file or directory: ' input.txt'
看起来它在第一个参数处占用了额外的空间。为什么会这样?我错过了什么。这之前有用。但我现在有一个新系统,我正面临这个问题。
我在链接中得到了一些线索 - Python argparse adds extra space before an argument
但如果有任何办法,我无法修改sys.argv =
。
答案 0 :(得分:0)
嗯很奇怪
但你可以这样做:
sys.argv[1].lstrip().strip() # Will remove any spaces to left / right of the string.