Python Argparse“需要以下参数”错误

Posted

技术标签:

【中文标题】Python Argparse“需要以下参数”错误【英文标题】:Python Argparse 'following arguments are required' error 【发布时间】:2019-01-11 16:41:00 【问题描述】:

我正在尝试使用 github 存储库,但项目的 argparse 部分存在一些问题。回购开始是这样的:

import markdown, sys, csv, getpass, smtplib, argparse
from email.mime.text import MIMEText
from jinja2 import Template


parser = argparse.ArgumentParser()
parser.add_argument('-m', '--markdown', help='Path to Markdown Template', required=True)
parser.add_argument('-c', '--csv', help='Path to CSV file', required=True)
parser.add_argument('-v', '--verbose', help='Write out emails')
args = parser.parse_args() 

我已经输入了 markdown 和 CSV 文件的相对路径和绝对路径......我得到了这个错误的回报:

usage: mass-email.py [-h] -m MARKDOWN -c CSV
mass-email.py: error: the following arguments are required: -m/--markdown, -c/--csv

Process finished with exit code 2

我找不到任何具体的帮助。任何建议将不胜感激。

【问题讨论】:

你是如何运行这个的?您没有显示您实际使用的命令行。 这能回答你的问题吗? Pycharm and sys.argv arguments 【参考方案1】:

使用mass-email.py -m /path/to/my/file -c /path/to/csv调用您的脚本

您的参数由它们的标志定义。如果您希望您的论点是位置的,请不要在它们之前包含破折号。

parser.add_argument('markdown', help='Path to Markdown Template', required=True)
parser.add_argument('csv', help='Path to CSV file', required=True)

【讨论】:

所以没有办法从 IDE 运行它?我正在使用 pycharm 两个选项:见 Greg 的回答或parser.parse_args('-m /path/to/my/file -c /path/to/csv'.split())【参考方案2】:

似乎您可以从 IDE 运行它而没有提供任何命令行参数。我看到你正在使用 pycharm,所以查看这篇关于将命令行参数传递给 pycharm 运行的帖子:

Pycharm and sys.argv arguments

【讨论】:

以上是关于Python Argparse“需要以下参数”错误的主要内容,如果未能解决你的问题,请参考以下文章

错误:需要以下参数:-i/--image

使用 Argparse 的 Python 错误

Python3 覆盖 argparse 错误

Argparse 错误:python2.x 上的参数太少

python argparse:如何在错误时自动显示帮助?

如何在同一个 python 脚本中使用 sys 和 argparse 而不会出现无法识别的参数错误?