You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用argparse时如何传递无选项参数且仅用其展示帮助信息

解决方法

你只需要把原代码中的parser.parse_args()替换为parser.parse_known_args()即可,修改后的完整代码如下:

import argparse
parser = argparse.ArgumentParser(prog='remove-duplicate-lines-except-blank-lines',
                                 usage='%(prog)s [options] [files...]',
                                 description='Remove duplicate line except white space')
# 仅解析已定义参数,未识别参数不抛出错误
args, unused_args = parser.parse_known_args()

说明

  • parse_args()会校验所有传入的命令行参数,只要有未提前通过add_argument定义的参数就会直接报错,这就是你传入文件名会触发错误的原因。
  • parse_known_args()会返回两个值:第一个是已解析的参数对象,第二个是所有未被识别的参数组成的列表,你不需要用到这个列表也没关系,不会影响你自行通过sys.argv处理文件参数的逻辑。
  • 原有-h/--help的帮助展示功能完全不受影响,依然可以正常输出你配置的用法和描述信息。

内容的提问来源于stack exchange,提问作者Ahmad Ismail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:15:01