python命令行解析

news2024/9/8 23:05:01
  • 导入库
import argparse
  • 创建参数解析器对象,可以接收多个选项来定制帮助文本和解析行为
parser = argparse.ArgumentParser()
  • 添加参数
  1. 位置参数:必须提供的参数,并且不需要选项前缀(如 - 或 --
  2. 可选参数:使用选项前缀(如 - 或 --),并且在命令行中是可选的
parser.add_argument()

下面具体看一下例子:

parser.add_argument(
        "--prompt",
        type=str,
        nargs="?",
        default="a painting of a virus monster playing guitar",
        help="the prompt to render"
    )

nargs 参数用于指定一个命令行参数可以接受的值的数量。nargs 可以接受以下几种值:

  • 整数: 接受指定数量的值(如 nargs=2 表示该参数接受两个值)
  • '?': 表示该参数是可选的,可以接受零个或一个值
  • '*': 接受零个或多个值
  • '+': 接受一个或多个值

下面重点看 nargs='?'的情况:

当 nargs="?" 时,参数可以接受零个或一个值。如果没有提供值,则使用默认值(如果指定了 default 参数)。如果没有提供值且没有指定默认值,则该参数的值为 None

  • 位置参数:在命令行中不需要/不能带参数名,直接带值即可。在 nargs='?'时,由于位置参数不带参数名,nargs 可以接受零个或一个值,因此位置参数是不带 const 参数的,只有 default 参数
parser.add_argument(
    'bar',
    nargs='?',
    default='default_bar',
    help='位置参数,可以接受零个或一个值'
)

args = parser.parse_args()
print(f"bar: {args.bar}")

1. 没有提供 bar 参数:

python script.py

    输出: bar: default_bar

2. 提供 bar 参数和一个值:

python script.py some_value

    输出: bar: some_value

  • 可选参数:此时就得带参数名,而且根据不同情况可能用到 const 和 default 参数
parser.add_argument(
    '--foo',
    nargs='?',
    const='default_const',  # 当没有提供值时使用的常量值
    default='default_value',  # 完全没有提供参数时使用的默认值
    help='可选参数,可以接受零个或一个值'
)

args = parser.parse_args()
print(f"foo: {args.foo}")

1. 没有提供 --foo 参数:

python script.py

    输出: foo: default_value

2. 提供 --foo 参数但没有值:

python script.py --foo

    输出: foo: default_const

3. 提供 --foo 参数和一个值:

python script.py --foo some_value

    输出: foo: some_value

const 和 default 的区别

  • const: 当参数存在但没有提供值时使用的常量值。只有在置 nargs='?' 或 nargs='*' 时才有意义
  • default: 当参数完全没有出现在命令行中时使用的默认值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[GYCTF2020]FlaskApp (pin码,jinja2绕过注入)

题目就是flask 下面是判断模版注入的方法 a{*comment*}b和{{7*7}}base64编码后解码都报错no,无法判断模版引擎 直接用下jinja2的试一试,把编码后的密文拿去解码,payload: {{"".__class__mro(2)__subclasses__()}} 报…

英文文献翻译方法哪个好?高效率的翻译方法分享

三伏天的酷热也抵挡不住学术人探索知识的脚步,阅读和翻译英文文献几乎已经成为了许多研究者和学者的日常。然而在面对浩如烟海的英文资料时,如何高效准确地进行翻译,成为了亟待解决的问题。 今天我便挖掘到了5款实用的英文文献翻译工具&…

4.1.1、操作系统的概述

操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。 操作系统的特征:并发性、共享性、虚拟性、不确定性。 操作系统的功能:进程管理、存储管理、文件管理、设备管理、作业管理。 操作系统的分类:批处理操作系统、分时操作系统(轮流使…

美股:苹果选择谷歌芯片支持人工智能技术

最近的研究报告显示,苹果公司在其新一代人工智能工具和功能套件中选择依赖谷歌设计的芯片,而非市场领导者 Nvidia。这一决定引发了业界的关注,尤其是考虑到Nvidia在人工智能处理器市场的主导地位。 谷歌云的TPU在苹果的AI基础设施中发挥关键作…

计算机再过几年会没落?

大部分人卷的计算机:Java web 实际上的计算机:web,图形学,Linux系统开发,一系列嵌入式开发,数据库,高性能服务器,中间件开发,三维建模,网络安全,…

vue2 封装弹框组件

安装 element-ui npm install element-ui --save ---force main.js 导入 import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue; Vue.use(ElementUI); new Vue({ el: #app, render: h > h(Ap…

Minio、MySQL、Redis、Milvus 安装

CPU:2核↑,内存:4GB↑ 开发工具:eclipse-jee、MySQL Workbench、MobaXterm、Redis Insight... 操作系统:CentOS Stream 9(生产环境)、Windos 11 Ubuntu 22.04.3(开发环境&#xf…

使用 Kibana 和 Vega 构建高级可视化

作者:来自 Carly Richmond 为了解释在 Kibana 中构建 Vega 可视化的基础知识,我将使用此 GitHub 存储库中的 2 个示例。具体来说,我将介绍: 使用 Elasticsearch 聚合进行数据采购轴和标记事件和信号(例如工具提示和更…

工具使用备忘录

npm npm是node包管理工具。yarn是npm的替代品,看起来使用更加广泛。cnpm是中国镜像。 cnpm安装时,曾经出现过错误。不进行安全验证后运行成功。 目前在WSL上可以全局使用cnpm 当时解决的方案是将报错信息copy下来,直接看通义千问的结果。 …

时间序列中多维度、多变量、多元、多尺度

目录 多尺度 多维度 多变量 多元 区别 举例: 多尺度 多尺度时间序列分析是指在不同的时间尺度上对数据进行分析。例如,某些现象可能在短期内表现出一种模式,而在长期内表现出另一种模式。多尺度分析可以帮助我们捕捉这些不同时间尺度上…

北斗RTK高精度定位系统介绍

北斗RTK高精度定位系统是一种高精度、高可靠、高效率的定位系统。它采用北斗卫星导航系统,结合实时动态差分RTK技术,能够实现亚米级的定位准确度,适用于石油化工、工厂、工地、园区、环卫等领域。 北斗RTK的核心技术是RTK技术,即实…

C++ | string

前言 本篇博客讲解c中的string类的使用(常用接口) 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee:普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 &#x1f389…

在 Elasticsearch 中实现采集自动扩展

作者:来自 Elastic Pooya Salehi, Henning Andersen, Francisco Fernndez Castao 正确调整 Elasticsearch 集群的大小并不容易。集群的最佳大小取决于集群正在经历的工作负载,而工作负载可能会随着时间的推移而变化。自动扩展会自动调整集群大小以适应工…

【JavaScript】详解JavaScript语法

文章目录 一、变量和数据类型二、运算符三、条件语句四、循环语句五、函数六、对象和数组七、ES6新特性八、实际应用案例 JavaScript是一门广泛应用于Web开发的编程语言。掌握JavaScript语法是成为前端开发者的第一步。本文将详细介绍JavaScript的基本语法,包括变量…

“Assistants“ has no attribute “files“ in openAI assistants

题意:在 OpenAI 的助手(assistants)中,“Assistants” 没有 “files” 这个属性。 问题背景: assistant_file client.beta.assistants.files.create(assistant_id st.session_state.assistant_id,file_id st.sessi…

2024年最佳骨传导耳机推荐:五款不容错过的选择!

作为音乐爱好者的我,也一直在寻找一款好的骨传导耳机,听音乐对我来说不仅仅是一种消遣方式,更多是一种对生活、工作上压力和困难的舒缓,所以今天给大家推荐几款骨传导耳机。今天推荐这几款骨传导耳机都是比较有性价比,…

Oracle VM VirtualBox 异常退出,如何解决??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

向量数据库性能测试工具(VectorDBBench.com)性价比排名

排名 向量数据库(不同硬件配置) 价格/性能比 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 无标量过滤 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 低标量过滤 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 高标量过滤 QP$(每百万次查询所花费的价…

Linux系统之ftp服务配置

(1)查看vsftpd服务软件是否安装。 若缺少相关软件请使用yum方式安装相关软件。 (2)关闭防火墙和selinux保护。 (3)设置匿名访问。 vim /etc/vsftpd/vsftpd.conf 并通过ftp的方式在共享文件夹中创建名为“…

生成式 AI 时代的数据库:Databend 与大模型的融合探索

生成式人工智能(Generative AI)近年来快速崛起,从图像生成、自然语言处理到个性化推荐系统,生成式 AI 的应用范围越来越广泛。在这其中,数据可以说是企业在生成式 AI 时代取得成功的关键,每个公司都能访问相…