当前位置: 首页 > news >正文

python | argparse模块在命令行的使用中的重要作用

import argparseclass TestCases:def __init__(self, name=None, expect_result=None):self.name = nameself.expect = expect_resultself.parser = argparse.ArgumentParser()  # 创建命令解析器self.add_arguments()   # 方法 : 添加命令self.args, _ = self.parser.parse_known_args()  # 解析命令行中的参数self.server_ip = self.args.ServerIPself.server_port = self.args.ServerPortself.device_ip = self.args.DeviceIPself.device_id = self.args.DeviceIDself.device_slot = self.args.DeviceSlotself.service_name = self.args.ServiceNamedef add_arguments(self):# 添加命令行参数self.parser.add_argument('--ServerIP', type=str, help='Server IP Address')self.parser.add_argument('--ServerPort', type=int, help='Server Port')self.parser.add_argument('--DeviceIP', type=str, help='Device IP Address')self.parser.add_argument('--DeviceID', type=str, help='Device ID')self.parser.add_argument('--DeviceSlot', type=str, help='Device Slot ID')self.parser.add_argument('--ServiceName', type=str, help='Service Name')# 创建 TestCases 类的实例,并使用新的命令行参数
test_case = TestCases(name="Test Case 1", expect_result="Success")# 打印实例的属性,查看是否正确初始化
print(f"Name: {test_case.name}")
print(f"Expected Result: {test_case.expect}")
print(f"Server IP: {test_case.server_ip}")
print(f"Server Port: {test_case.server_port}")
print(f"Device IP: {test_case.device_ip}")
print(f"Device ID: {test_case.device_id}")
print(f"Device Slot: {test_case.device_slot}")
print(f"Service Name: {test_case.service_name}")

在这个示例中,我们首先定义了 TestCases 类,然后在类中添加了一个 add_arguments 方法来定义命令行参数。
接着,我们创建了一个 TestCases 类的实例 test_case,并传入了 name 和 expect_result 参数。

请注意,要使这段代码正常工作,你需要从命令行运行脚本并提供相应的参数。如果你不提供参数,self.address 等属性将被设置为 None。

  • 直接运行的结果

最后,我们打印出实例的各个属性,以验证它们是否被正确初始化。 请注意,这个示例假设所有命令行参数都是通过环境变量或在命令行中直接提供,因为 parse_known_args() 方法需要实际的命令行参数来进行解析

右键直接运行的结果
D:\SoftWare\ana\python.exe D:/PythonProject/learnTest/args2.py
Name: Test Case 1
Expected Result: Success
Server IP: None
Server Port: None
Device IP: None
Device ID: None
Device Slot: None
Service Name: None

命令行参数运行的结果:

创建 TestCases 类的实例,需要通过命令行传递参数

python args2.py \
--ServerIP 192.168.1.1 \
--ServerPort 8080 \
--DeviceIP 10.0.0.1 \
--DeviceID CHASSIS1 \
--DeviceSlot SLOT1 \
--ServiceName INSTANCE1Name: Test Case 1
Expected Result: Success
ServerIP 192.168.1.1 
ServerPort 8080 
DeviceIP 10.0.0.1 
DeviceID CHASSIS1 
DeviceSlot SLOT1 
ServiceName INSTANCE1

相关文章:

python | argparse模块在命令行的使用中的重要作用

import argparseclass TestCases:def __init__(self, nameNone, expect_resultNone):self.name nameself.expect expect_resultself.parser argparse.ArgumentParser() # 创建命令解析器self.add_arguments() # 方法 : 添加命令self.args, _ self.parser.par…...

【HCIP]——OSPF综合实验

题目 实验需求 根据上图可得,实验需求为: 1.R5作为ISP:其上只能配置IP地址;R4作为企业边界路由器,出口公网地址需要通过PPP协议获取,并进行CHAP认证。(PS:因PPP协议尚未学习&#…...

PW系列工控电脑复制机:效率与精度双重提升

工控电脑复制应用:效率与精度的双重提升 随着现代企业对大数据、数据备份、和跨平台兼容性需求的快速增长,工控电脑已成为数据密集型产业的核心设备。针对工控环境中大量数据复制的特殊需求,PW系列NVMe/SATA PCIe SSD复制机(如PW…...

学习QT第二天

QT6示例运行 运行一个Widgets程序运行一个QT Quick示例 工作太忙了,难得抽空学点东西。-_-||| 博客中有错误的地方,请各位道友及时指正,感谢! 运行一个Widgets程序 在QT Creator的欢迎界面中,点击左侧的示例&#xf…...

11.20作业

题目一&#xff1a; 题目&#xff1a; // 数组的行列转置 代码&#xff1a; // 数组的行列转置 #include <stdio.h> int main() {int a[2][3], i, j, b[3][2];printf("输入一个两行三列的数组a:\n");for (i 0; i < 2; i)for (j 0; j < 3; j){scanf…...

Ubuntu Linux使用前准备动作_使用root登录图形化界面

Ubuntu默认是不允许使用 root 登录图形化界面的。这是出于安全考虑的设置。但如果有需要&#xff0c;可以通过以下步骤来实现使用 root 登录&#xff1a; 1、设置 root 密码 打开终端&#xff0c;使用当前的管理员账户登录系统。在终端中输入命令sudo passwd root&#xff0c…...

DICOM核心概念:显式 VR(Explicit VR)与隐式 VR(Implicit VR)在DICOM中的定义与区别

在DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;标准中&#xff0c;VR&#xff08;Value Representation&#xff09; 表示数据元素的值的类型和格式。理解显式 VR&#xff08;Explicit VR&#xff09;与隐式 VR&#xff08;Implicit VR&#…...

源码分析Spring Boot (v3.3.0)

. ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|_| |_|_| |_\__, | / / / /|_||___//_/_/_/:: Spring Boot :: (v3.3.0)//笔记背…...

IPv6 NDP 记录

NDP&#xff08;Neighbor Discovery Protocol&#xff0c;邻居发现协议&#xff09; 是 IPv6 的一个关键协议&#xff0c;它组合了 IPv4 中的 ARP、ICMP 路由器发现和 ICMP 重定向等协议&#xff0c;并对它们作出了改进。该协议使用 ICMPv6 协议实现&#xff0c;作为 IPv6 的基…...

linux常用命令(文件操作)

目录 1. ls - 列出目录内容 2. cd - 更改目录 3. pwd - 打印当前工作目录 4. mkdir - 创建目录 5. rm - 删除文件或目录 6. cp - 复制文件或目录 7. mv - 移动或重命名文件 8. touch - 更新文件访问和修改时间 9. cat - 显示文件内容 10. grep - 搜索文本 11. chmod…...

内存管理 I(内存管理的基本原理和要求、连续分配管理方式)

一、内存管理的基本原理和要求 内存管理&#xff08;Memory Management&#xff09;是操作系统设计中最重要和最复杂的内容之一。虽然计算机硬件技术一直在飞速发展&#xff0c;内存容量也在不断增大&#xff0c;但仍然不可能将所有用户进程和系统所需要的全部程序与数据放入主…...

【Redis】基于Redis实现秒杀功能

业务的流程大概就是&#xff0c;先判断优惠卷是否过期&#xff0c;然后判断是否有库存&#xff0c;最好进行扣减库存&#xff0c;加入全局唯一id&#xff0c;然后生成订单。 一、超卖问题 真是的场景下可能会有超卖问题&#xff0c;比如开200个线程进行抢购&#xff0c;抢100个…...

Hadoop 使用过程中 15 个常见问题的详细描述、解决方案

目录 问题 1&#xff1a;配置文件路径错误问题描述解决方案Python 实现 问题 2&#xff1a;YARN 资源配置不足问题描述解决方案Python 实现 问题 3&#xff1a;DataNode 无法启动问题描述解决方案Python 实现 问题 4&#xff1a;NameNode 格式化失败问题描述解决方案Python 实现…...

【Flutter 问题系列第 84 篇】如何清除指定网络图片的缓存

这是【Flutter 问题系列第 84 篇】&#xff0c;如果觉得有用的话&#xff0c;欢迎关注专栏。 博文当前所用 Flutter SDK&#xff1a;3.24.3、Dart SDK&#xff1a;3.5.3&#xff0c;网络图片缓存用的插件 cached_network_image: 3.4.1&#xff0c;缓存的网络图像的存储和检索用…...

【UE5】使用基元数据对材质传参,从而避免新建材质实例

在项目中&#xff0c;经常会遇到这样的需求&#xff1a;多个模型&#xff08;例如 100 个&#xff09;使用相同的材质&#xff0c;但每个模型需要不同的参数设置&#xff0c;比如不同的颜色或随机种子等。 在这种情况下&#xff0c;创建 100 个实例材质不是最佳选择。正确的做…...

鸿蒙动画开发07——粒子动画

1、概 述 粒子动画是在一定范围内随机生成的大量粒子产生运动而组成的动画。 动画元素是一个个粒子&#xff0c;这些粒子可以是圆点、图片。我们可以通过对粒子在颜色、透明度、大小、速度、加速度、自旋角度等维度变化做动画&#xff0c;来营造一种氛围感&#xff0c;比如下…...

IDEA2023 创建SpringBoot项目(一)

一、Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。 二、快速开发 1.打开IDEA选择 File->New->Project 2、…...

VSCode:终端打开一片空白,无cmd

第一步&#xff1a;找到右下角设置图标 第二步&#xff1a;找到 Terminal - Integrated - Default Profile: Windows: 选择一个本地存在的命令方式&#xff0c;重启即可 也可以直接在右下角直接选择...

Zea maize GO

1.涉及到新旧基因组的转化 B73v4_to_B73v5 &#xff08;davidbioinformatics只支持新版基因组&#xff09; MaizeGDB Map文件下载https://download.maizegdb.org/Pan-genes/B73_gene_xref/小处理脚本&#xff08;制作map文件&#xff09; import pandas as pd# 读取CSV文件 …...

Android开发实战班 - 数据持久化 - 数据加密与安全

在 Android 应用开发中&#xff0c;数据安全至关重要&#xff0c;尤其是在处理敏感信息&#xff08;如用户密码、支付信息、个人隐私数据等&#xff09;时。数据加密是保护数据安全的重要手段&#xff0c;可以有效防止数据泄露、篡改和未经授权的访问。本章节将介绍 Android 开…...

深度学习 三次浪潮、三大驱动力与神经科学的恩怨(二)

1. 一个领域&#xff0c;多个名字 很多人以为"深度学习"是一个全新的领域。事实上&#xff0c;它的历史可以追溯到 20 世纪 40 年代——只不过在不同时期&#xff0c;它被叫过完全不同的名字&#xff1a; 1940s-1960s&#xff1a;被称为控制论&#xff08;Cybernetic…...

Meshroom三维重建实战指南:从图像到模型的全流程解析

Meshroom三维重建实战指南&#xff1a;从图像到模型的全流程解析 【免费下载链接】Meshroom 3D Reconstruction Software 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom Meshroom作为一款开源的3D重建软件&#xff0c;通过摄影测量技术将2D图像转化为精确的三维…...

AlertDialog高斯模糊进阶指南:Android12新特性与兼容方案对比

AlertDialog高斯模糊进阶指南&#xff1a;Android12新特性与兼容方案对比 在移动应用设计中&#xff0c;视觉层次的营造往往决定了用户体验的优劣。当用户与AlertDialog交互时&#xff0c;背景的高斯模糊效果能够有效聚焦注意力&#xff0c;同时保持界面连贯性。Android 12引入…...

LFM2.5-1.2B-Thinking-GGUF基础教程:单页Web界面交互逻辑与后处理机制

LFM2.5-1.2B-Thinking-GGUF基础教程&#xff1a;单页Web界面交互逻辑与后处理机制 1. 模型与平台介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个镜像采用内置GGUF模型文件和llama.cpp运行时&#xff0c;提供了…...

3大场景解析:开源工具如何重构MobaXterm的专业版体验

3大场景解析&#xff1a;开源工具如何重构MobaXterm的专业版体验 【免费下载链接】MobaXterm-Keygen MobaXterm Keygen Originally by DoubleLabyrinth 项目地址: https://gitcode.com/gh_mirrors/mob/MobaXterm-Keygen 在开发者的日常工作中&#xff0c;终端工具的选择…...

AB Download Manager终极指南:告别杂乱下载,3步打造高效下载工作流

AB Download Manager终极指南&#xff1a;告别杂乱下载&#xff0c;3步打造高效下载工作流 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager 还在为下载…...

2025夏季技术实习「抢位战」:3步解锁2500+优质机会(附避坑指南)[特殊字符]

2025夏季技术实习「抢位战」&#xff1a;3步解锁2500优质机会&#xff08;附避坑指南&#xff09;&#x1f525; 【免费下载链接】Summer2026-Internships 2025年夏季技术实习机会集合&#xff01; 项目地址: https://gitcode.com/GitHub_Trending/su/Summer2026-Internships…...

JSON·学习笔记

“误报。我的安全阀一切正常。” “我们继续&#xff0c;今天我想解释一下什么是JSON。” “是啊&#xff0c;这个词我听过很多次了&#xff0c;什么意思&#xff1f;” “随着网络的发展&#xff0c;带有 JavaScript 的 HTML 页面开始主动与服务器通信并从服务器下载数据。为…...

YOLOv7剪枝实战:5种高效剪枝方法对比与代码实现

YOLOv7剪枝实战&#xff1a;5种高效剪枝方法对比与代码实现 在目标检测领域&#xff0c;YOLOv7以其卓越的速度-精度平衡成为工业界宠儿。但当我们将模型部署到边缘设备或需要高吞吐量的生产环境时&#xff0c;原始模型的计算量和参数量往往成为瓶颈。这时&#xff0c;模型剪枝技…...

跨域突围与全栈架构演进:从Vite本地代理到Nginx部署+Next.js BFF层实战

摘要&#xff1a;前面10篇博客&#xff0c;我们从SPA架构、React核心Hook、TS类型系统、组件化封装、性能优化&#xff0c;一步步吃透了中后台系统的前端开发全流程&#xff0c;完成了从前端入门到熟练开发的进阶。但想要从“只会写页面的码农”&#xff0c;升级为“懂架构、懂…...