python - argparse 告诉我一个 store_true arg 突然需要一个参数
问题描述
我正在使用该argparse
库并创建了一些布尔参数,如下所示:
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generate a batch of Line Protocol points of a specified shape")
parser.add_argument('--loop', action='store_true', help="If True, script runs in infinit loop; used with Telegraf `execd` input plugin")
args = parser.parse_args()
print(args)
这已经工作了数周没有问题,现在突然间我得到了错误:
ipython3: error: argument --loop: expected one argument
解决方案
如果您有以下文件 ( example.py
):
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--loop', action='store_true', help="<help stuff")
args = parser.parse_args()
print(args)
您可以使用“普通”Python 执行它:
$ python example.py
Namespace(loop=False)
$ python example.py --loop
Namespace(loop=True)
或使用 ipython,您需要通过以下方式将 ipython 参数与脚本参数分开--
:
$ ipython3 example.py -- --loop
Namespace(loop=True)
推荐阅读
- javascript - 如何动态设置 Web 组件的属性
- phpstorm - 如何对 PhpStorm 中的字段进行排序,包括注释
- python - 使用 BS4 抓取网站
- python - 是否有任何 Python/numpy 等效于 Matlab 的 [row,col] = find(X)
- ruby-on-rails - 产品在 rails app + shopify_app gem 中按标题过滤
- sql-server-2016 - SQL SERVER 2016 正在使用大量资源。几乎没有任何原因的4GM RAM
- react-native - 单击 Gigya 帐户验证链接,如何将用户重定向到 App(如果可用)或网站?
- android - 使用 Kotlin 和 Retrofit 的 Android 项目中未解决的参考 call.enqueue 错误
- cordova - 为 Ionic App 创建和使用自定义 Cordova IOS 插件
- python - werkzeug.exceptions.BadRequestKeyError 当点击按钮