【发布时间】:2017-05-17 17:41:24
【问题描述】:
我正在尝试使用 python 中的 argparse 库来读取可选和必需的参数。到目前为止,我正在这样做:
import argparse
parser = argparse.ArgumentParser(description='Cleanup Script for Folder')
parser.add_argument('PATH_TO_WORKDIR_ROOT', type=str, dest='PATH_TO_WORKDIR_ROOT', action='store', help='(absolute or) relative path to directory \n to work on, e.g. "..\MyFolder\\"')
parser.add_argument('--PATH_TO_BACKUP_ROOT', type=str, dest='PATH_TO_BACKUP_ROOT', action='store', help='(absolute or) relative path to Backup-Directory \n default is ".\BACKUP\"')
args = parser.parse_args()
现在我正在测试我的代码,它给了我一个我不理解的值错误:
$ python argparsetest.py --help
Traceback (most recent call last):
File "argparsetest.py", line 5, in <module>
parser.add_argument('PATH_TO_WORKDIR_ROOT', type=str, dest='PATH_TO_WORKDIR_ ROOT', action='store', help='(absolute or)
relative path to directory \n to wo rk on, e.g. "..\MyFolder\\"')
File "C:\Program
Files\Enthought\Canopy\App\appdata\canopy-1.3.0.1715.win-x86_
64\lib\argparse.py", line 1262, in add_argument
raise ValueError('dest supplied twice for positional argument') ValueError: dest supplied twice for positional argument
只有一个位置参数,不存在并且目的地不同。我真的不明白麻烦:)
提前非常感谢!
【问题讨论】:
-
尝试将
--添加到PATH_TO_WORKDIR_ROOT,例如--PATH_TO_WORKDIR_ROOT -
错误完全在第一个
add_argument方法中。第一个字符串是dest,您不能使用关键字参数再次定义它。 docs.python.org/3/library/argparse.html#dest
标签: python-2.7 exception argparse