Python argparse:参数太少
我正在尝试使用Python中的argparse库。我想让用户执行以下操作:Python argparse:参数太少,python,argparse,Python,Argparse,我正在尝试使用Python中的argparse库。我想让用户执行以下操作: python my_script.py csv_name.csv [--dryrun] 其中,--dryrun是一个可选参数 然后让用户输入API密钥和密钥。当我运行代码时,我通过输入API和密钥,然后得到: usage: my_script.py [-h] csv dryrun salesforceImporter.py: error: too few arguments 这是我的密码: def main():
python my_script.py csv_name.csv [--dryrun]
其中,--dryrun
是一个可选参数
然后让用户输入API密钥和密钥。当我运行代码时,我通过输入API和密钥,然后得到:
usage: my_script.py [-h] csv dryrun
salesforceImporter.py: error: too few arguments
这是我的密码:
def main():
api_key = getpass.getpass(prompt='Enter API Key: ')
secret_key = getpass.getpass(prompt='Enter Secret Key: ')
parser = argparse.ArgumentParser()
parser.add_argument("csv")
parser.add_argument("dryrun")
args = parser.parse_args()
validate_csv_name(args.csv)
is_dry_run = args.dryrun == '--dryrun'
知道我哪里出错了吗
谢谢 使用以下语法时:
parser.add_argument("csv")
parser.add_argument("dryrun")
您将这些作为位置参数(必需)添加。只有带前导破折号或两个破折号的参数是可选的
见:
add_argument()方法必须知道是否需要一个可选参数(如-f或--foo)或一个位置参数(如文件名列表)。因此,传递给add_argument()的第一个参数必须是一系列标志或简单的参数名。例如,可以创建一个可选参数,如下所示:
要添加可选的--dry run
参数,可以使用以下代码段:
parser.add_argument('--dry-run', action='store_true')
使用
python my_script.py csv\u name.csv--dry run
调用脚本将导致args.dry_run
为True
。不放置该选项将导致其为False
,因此现在我正在执行类似于:parser.add\u参数(“--dryrun”)的操作。不幸的是,现在我得到了:用法:my_script.py[-h][--dryrun-dryrun]csv my_script.py:error:argument--dryrun:需要一个参数
parser.add_argument('--dry-run', action='store_true')