【问题标题】:Python Argparse 'following arguments are required' errorPython Argparse“需要以下参数”错误
【发布时间】: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

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

【问题讨论】:

标签: python pycharm argparse


【解决方案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

【讨论】:

    猜你喜欢
    • 2018-12-12
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 2023-02-09
    • 2014-10-26
    • 2021-07-12
    • 1970-01-01
    • 2020-11-05
    相关资源
    最近更新 更多