【Python】一文向您详细介绍 argparse中 action=‘store_false’ 的作用

【Python】一文向您详细介绍 argparse中 action=‘store_false’ 的作用
 
下滑即可查看博客内容
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇

🎓 博主简介985高校的普通本硕,曾有幸发表过人工智能领域的 中科院顶刊一作论文,熟练掌握PyTorch框架

🔧 技术专长: 在CVNLP多模态等领域有丰富的项目实战经验。已累计提供近千次定制化产品服务,助力用户少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于深度学习、PyTorch、Python相关的实用内容。已发表原创文章600余篇,代码分享次数逾九万次

💡 服务项目:包括但不限于科研辅导知识付费咨询以及为用户需求提供定制化解决方案

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🌵文章目录🌵

  • 🚀一、初识`argparse`与`action='store_false'`
      • 示例场景
  • 💡二、`action='store_false'`的基本用法
      • 示例代码
  • 🔍三、完整命令行指令示例
  • 📚四、举一反三:`action='store_true'`与`action='store_false'`的对比应用
      • 示例场景
  • 🚀五、`argparse`的更多应用场景
      • 位置参数
      • 互斥参数组
  • 🔍六、进阶使用:`argparse`的高级特性
  • 📚七、总结与展望

下滑即可查看博客内容

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🚀一、初识argparseaction='store_false'

在Python编程中,命令行接口(CLI)的设计至关重要,它不仅让脚本的使用更加灵活,还能通过参数控制脚本的行为。argparse是Python标准库中的一个强大模块,它简化了命令行参数的解析工作。action='store_false'argparse中一个非常实用的参数动作,它允许我们定义一个标志(flag),当这个标志在命令行中被指定时,会将对应的变量设置为False,否则默认为True(或者由default参数指定的值,但通常我们将其设置为True以避免混淆)。

示例场景

想象一下,你正在编写一个脚本,该脚本默认会执行一系列的操作,但你可能想要在某些情况下跳过某些步骤或启用调试模式。这时,action='store_false'就派上用场了,它允许你通过简单的命令行标志来控制这些行为。

💡二、action='store_false'的基本用法

action='store_false'的基本用法非常简单。首先,你需要导入argparse模块,然后创建一个ArgumentParser对象,并调用其add_argument方法来添加参数。当为某个参数指定action='store_false'时,如果该参数在命令行中被指定,则其对应的变量值将被设置为False

示例代码

import argparse# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description='示例脚本,展示 action=store_false 的用法。')# 添加一个标志 --no-debug,当它被指定时,debug 变量将被设置为 False
parser.add_argument('--no-debug', help='禁用调试信息', action='store_false')# 注意:我们没有为 debug 变量显式设置默认值,但通常建议这样做以避免混淆
# 如果不设置默认值,且未指定 --no-debug,则 args.no_debug 将是 None(这通常不是我们想要的)
# 因此,应该这样设置默认值:
# parser.add_argument('--no-debug', help='禁用调试信息', action='store_false', default=True)# 解析命令行参数
args = parser.parse_args()# 根据 args.no_debug 的值控制调试信息的输出
if args.no_debug:print('调试信息已启用(但这里我们实际上想要它默认为启用,所以应该设置 default=True)。')
else:print('调试信息已禁用。')# 更正后的代码,设置 default=True
parser = argparse.ArgumentParser(description='示例脚本,展示 action=store_false 的正确用法。')
parser.add_argument('--no-debug', help='禁用调试信息', action='store_false', default=True)
args = parser.parse_args()if args.no_debug:print('调试信息已启用(这是默认值,如果指定了 --no-debug 则会禁用)。')
else:print('调试信息已禁用。')

🔍三、完整命令行指令示例

假设上面的脚本保存为script.py,则你可以通过以下方式在命令行中运行它,并查看action='store_false'的效果。

  • 启用调试信息(默认情况)

    python script.py
    

    输出将是:“调试信息已启用(这是默认值,如果指定了 --no-debug 则会禁用)。”

  • 禁用调试信息

    python script.py --no-debug
    

    输出将是:“调试信息已禁用。”

📚四、举一反三:action='store_true'action='store_false'的对比应用

在实际编程中,action='store_true'action='store_false'经常被一起使用,以提供用户友好的开关选项。它们之间的选择主要取决于你想要的默认行为是什么。

示例场景

假设你正在编写一个用于处理图片的脚本,该脚本支持两种模式:一种是自动调整图片大小以适应特定尺寸(默认行为),另一种是保持原始尺寸不变。这里,action='store_false'可以用来启用“保持原始尺寸”的选项。

import argparseparser = argparse.ArgumentParser(description='图片处理脚本,支持自动调整大小和保持原始尺寸。')# 默认启用自动调整大小
parser.add_argument('--keep-original-size', help='保持图片原始尺寸', action='store_false', default=True)args = parser.parse_args()if args.keep_original_size:print('将保持图片原始尺寸。')
else:print('将自动调整图片大小以适应预设尺寸。')

🚀五、argparse的更多应用场景

argparse不仅限于简单的开关选项,它还可以处理位置参数、互斥参数组、子命令等多种复杂情况。

位置参数

位置参数是那些按照顺序出现的参数,它们不需要前缀(如--)。

parser = argparse.ArgumentParser(description='处理文件的脚本。')
parser.add_argument('input_file', help='输入文件')
parser.add_argument('output_file', help='输出文件')args = parser.parse_args()
print(f'处理文件:{args.input_file}{args.output_file}')

互斥参数组

互斥参数组允许你定义一组参数,这些参数中只能有一个被指定。

group = parser.add_mutually_exclusive_group()
group.add_argument('--verbose', action='store_true', help='增加输出信息的详细程度')
group.add_argument('--quiet', action='store_true', help='减少输出信息')# 注意:由于互斥性,--verbose 和 --quiet 不能同时被指定

🔍六、进阶使用:argparse的高级特性

argparse还提供了许多高级特性,如类型检查、默认值、参数分组、子命令等,这些特性可以极大地增强你的命令行接口的功能和灵活性。

  • 类型检查:你可以为参数指定类型,argparse会自动进行类型转换。
  • 自定义帮助信息:通过epilogdescription等参数,你可以自定义帮助信息的显示内容。
  • 子命令:使用subparsers可以创建类似于Git那样的子命令结构。

📚七、总结与展望

通过本文,我们深入了解了argparseaction='store_false'的作用及其在命令行中的具体使用方法。同时,我们也探讨了action='store_true'的对比应用,以及argparse的更多应用场景和高级特性。

argparse是Python中一个非常强大且灵活的模块,它能够帮助你轻松地创建用户友好的命令行接口。无论是简单的开关选项,还是复杂的位置参数、互斥参数组和子命令,argparse都能提供强大的支持。

未来,随着你对Python编程的深入,你将有机会在更多的项目中应用argparse,并探索其更多高级特性和最佳实践。希望本文能够为你提供一个良好的起点,让你在Python命令行编程的道路上越走越远。

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

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

相关文章

邮件推送服务的自动化流程设置与优化技巧?

邮件推送服务如何定制化?邮件推送的安全性如何保障? 无论是大型企业还是小型企业,通过精准的邮件推送服务,可以实现客户关系管理的有效增强,提升品牌认知度和销售转化率。AokSend将探讨如何通过自动化流程设置与优化技…

天翼云高级运维工程师202407回忆题库 最新出炉

备考天翼云高级运维工程师 必须备考天翼云 之前觉得外企牛批 然后民企,拔地而起,民企也不错,工资高,有钱途 现在看来看去,还是国企好,体制内的,有保障,树大根深 有必要备考下天…

LLM+本地知识库?简单又没那么简单

最近在研究如何将大语言模型结合本地知识库进行问答,虽然网上已经有很多教程,但大部分都是基于LangChain进行文本分割,然后调用模型向量化的API。这种方式的确很简单,但有这么几个前提: 大模型不使用ChatGPT的话&…

07-04 周四 关于vLLM(LLMs_inference)源码安装过程问题与解决

07-04 周四 关于LLMs_inference源码安装过程问题与解决 时间版本修改人描述2024年7月4日09:48:09V0.1宋全恒新建文档 简介 由于最近需要向vLLM上集成功能,因此,需要能够调试自己的仓库LLMs_Inference,该文档记录了源码编译的完整的过程。 参…

对比:9款最佳个人项目管理软件盘点

文章介绍了9款个人项目管理软件:PingCode、Worktile、Flowus、Todoist、Trello、Teambition、有道云笔记、Notion、Microsoft To Do。 在管理个人项目时,是否常感到信息零散、进度难以把控?选择合适的项目管理软件,可以有效解决这…

【密码学】从有限状态自动机到密钥流生成器

本文是对流密码内容的拓展,在流密码中种子密钥通过一个伪随机数生成器产生一个与明文等长的伪随机密钥流。而本文的内容就是在回答这样两个问题: 伪随机密钥流是如何生成的?流密码、流密钥生成器和有限状态自动机之间是什么关系?…

Defensor 4.5:构建数据资产为中心的安全运营体系

5月31日“向星力”未来数据技术峰会上,星环科技重磅发布数据安全管理平台 Defensor 4.5版本。新版本引入了以数据资产为中心的数据安全运营体系,通过智能化大模型技术,帮助企业快速、精准地识别核心重要资产;建设全局的数据安全策…

拥抱应用创新,拒绝无谓的模型竞争

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

怎么判断自己是否适合学习PMP?

判断自己是否适合学习PMP项目管理专业人士认证,可以从以下几个方面进行考量: 1、职业发展需求: 如果您在项目管理领域工作,或计划未来从事相关工作,PMP认证能显著提升您的竞争力。 对于项目经理、产品经理、技术领导…

充电桩运营平台的技术方案 53页

充电桩运营平台的技术方案 53页,全套解决方案 内容太多,复制图片丢失,需要完整的私信我。

一次性语音芯片——智能家居的新兴技术

一次性语音芯片,作为现代智能家居技术,正以其魅力和性能,逐渐渗透到我们日常生活的每一个角落。这些小巧而强大的芯片,不仅为智能家居设备赋予了“说话”的能力,更在提升用户体验、增强设备交互性方面发挥了举足轻重的…

数据库db文件损坏修复方法(sqlite3:database disk image is malformed)

参考博客: https://www.cnblogs.com/liuyangQAQ/p/18037546 sqlite3数据库提示database disk image is malformed 解决办法-CSDN博客 【SQL】sqlite数据库损坏报错:database disk image is malformed(已解决)-CSDN博客 一、第…

Yarn标签调度--HDP测试

hadoop版本从2.7.2版本开始 新增标签调度功能。 标签调度功能:可以给节点设置标签 让作业任务调度到这个设置的标签节点。 列入: 某个任务需要用到gpu资源,而gpu并非在每个节点上都有,通过对节点设置标签,可以使作业…

imx6ull/linux应用编程学习(15) 移植MQTT客户端库/测试

1. 准备开发环境 确保你的Ubuntu系统已经安装了必要的工具和依赖项。打开终端并运行以下命令: sudo apt update sudo apt install build-essential cmake git2. 获取MQTT库 git clone https://github.com/eclipse/paho.mqtt.c.git cd paho.mqtt.c3. 编译MQTT库 mk…

苹果开发者取消自动续费

文档:https://support.apple.com/zh-cn/118428 如果没有找到订阅,那就是账号不对 取消订阅后,就不会自动续费了,如果不放心,可以把付款绑定的方式也取消

TQZC706开发板教程:在ZC706+ADRV9009硬件平台运行ADI Linux

本教程使用2024-06-18的ADI镜像文件,创建ZC706ADRV9009的linux工程进行测试。 首先需要下载ADI的镜像文件下载地址如所示: https://wiki.analog.com/resources/tools-software/linux-software/adi-kuiper_images/release_notes#r2_patch_1 烧写完成后若…

50斤的东西寄什么快递最便宜?邮寄物品最便宜的方法分享

作为一个电商创业者,我经常需要寄送大量商品。寄送50斤左右的东西时,选择哪个快递公司最便宜成了我们关注的重点。今天,我将分享一些实用的寄快递省钱技巧和打包建议,帮助大家在快递费用上省下一大笔。云木寄快递 首先&#xff0…

小红书矩阵源码(多账号发布+批量剪辑视频+一键分发)

在数字化时代,社交媒体已成为品牌推广和个人表达的重要渠道。小红书作为国内领先的生活分享社区,其矩阵源码的出现,为多账号运营提供了前所未有的便利。本文将深入探讨小红书矩阵源码如何通过多账号发布、批量剪辑视频、一键分发以及持续迭代…

windows10设置环境变量Path步骤

1、鼠标右键“我的电脑”,点击“属性”,打开控制面板窗口,如图: 2、点击“高级系统设置”,弹出设置窗口,如图: 3、点击底部的“环境变量”,弹出环境变量窗口,如图&#x…

[CTF]-PWN:House of Cat堆题型综合解析

原理: 调用顺序: exit->_IO_wfile_jumps->_IO_wfile_seekoff->_IO_switch_to_wget_mode _IO_wfile_seekoff源码: off64_t _IO_wfile_seekoff (FILE *fp, off64_t offset, int dir, int mode) {off64_t result;off64_t delta, new…