我想通过追加在parser.add_argument中添加参数但是当我运行它时会出现以下消息
Prueba.py: error: argument -c1/--col1: expected one argument
即使我尝试使用-h
访问帮助,也会出现。
这是代码
import argparse
parser = argparse.ArgumentParser(description='This is a program that makes a comparison between two files')
parser.add_argument('-c1', '--col1', action = 'append', default = [1,2], help = "Numbers in the first column")
parser.add_argument('-c2', '--col2', action = 'append', default = [1,2], help = "Numbers in the second column")
parser.add_argument('-f1', '--file1', type=str, action = 'store', help="File 1 Path")
parser.add_argument('-f2', '--file2', type=str, action = 'store', help="File 2 Path")
parser.parse_args('--col1'.split(','))
parser.parse_args('--col2'.split(','))
args = parser.parse_args()
col1 = args.col1
col2 = args.col2
file1 = args.file1
file2 = args.file2
print file1
print file2
print col1
print col2
答案 0 :(得分:0)
--col1
和--col2
都需要相关的参数。因此,您将无效参数传递给parse_args
。
最重要的是,您使用split(',')
是一个错误。当然你打算写split()
。错误是良性的,因为代码代表了问题。但是只要你添加额外的参数,它就会崩溃。
将对parse_args()
的三次通话替换为此单一通话:
args = parser.parse_args('--col1 1 --col2 2'.split())
这是一个简短的演示程序,用于演示工作append
参数。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--arg', action='append')
print parser.parse_args('--arg foo --arg bar'.split())
<强>输出强>
Namespace(arg=['foo', 'bar'])
答案 1 :(得分:0)
如果删除行
,它将起作用parser.parse_args('--col1'.split(','))
parser.parse_args('--col2'.split(','))
他们应该做什么呢?为什么要将固定字符串拆分为&#39;,&#39;哪些甚至不包含任何&#39;?#/ p>