Python argparse:参数太少
Python argparse: Too few arguments
我正在尝试使用 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():
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")
您将这些添加为位置参数——必需——参数。只有前导破折号或两个破折号的参数是可选的。
The add_argument() method must know whether an optional argument, like -f or --foo, or a positional argument, like a list of filenames, is expected. The first arguments passed to add_argument() must therefore be either a series of flags, or a simple argument name. For example, an optional argument could be created like:
>>> parser.add_argument('-f', '--foo')
要添加可选的 --dry-run
参数,您可以使用以下代码段:
parser.add_argument('--dry-run', action='store_true')
使用 python my_script.py csv_name.csv --dry-run
调用您的脚本将导致 args.dry_run
成为 True
。不放置该选项将导致它成为 False
我正在尝试使用 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():
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")
您将这些添加为位置参数——必需——参数。只有前导破折号或两个破折号的参数是可选的。
The add_argument() method must know whether an optional argument, like -f or --foo, or a positional argument, like a list of filenames, is expected. The first arguments passed to add_argument() must therefore be either a series of flags, or a simple argument name. For example, an optional argument could be created like:
>>> parser.add_argument('-f', '--foo')
要添加可选的 --dry-run
参数,您可以使用以下代码段:
parser.add_argument('--dry-run', action='store_true')
使用 python my_script.py csv_name.csv --dry-run
调用您的脚本将导致 args.dry_run
成为 True
。不放置该选项将导致它成为 False