当前位置: 首页 > 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 开…...

EDA实验设计-led灯管动态显示;VHDL;Quartus编程

EDA实验设计-led灯管动态显示&#xff1b;VHDL&#xff1b;Quartus编程 引脚配置实现代码RTL引脚展示现象记录效果展示 引脚配置 #------------------GLOBAL--------------------# set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_…...

Eclipse 查找功能深度解析

Eclipse 查找功能深度解析 Eclipse 是一款广受欢迎的集成开发环境(IDE),它为各种编程语言提供了强大的开发工具。在本文中,我们将深入探讨 Eclipse 的查找功能,这是开发者日常工作中不可或缺的一部分。无论是查找代码中的特定字符串,还是进行更复杂的搜索,如正则表达式…...

第三百二十九节 Java网络教程 - Java网络UDP套接字

Java网络教程 - Java网络UDP套接字 TCP套接字是面向连接的&#xff0c;基于流。基于UDP的套接字是无连接的&#xff0c;基于数据报。 使用UDP发送的数据块称为数据报或UDP数据包。每个UDP分组具有数据&#xff0c;目的地IP地址和目的地端口号。 无连接套接字在通信之前不建立…...

Leetcode215. 数组中的第K个最大元素(HOT100)

链接 第一次&#xff1a; class Solution { public:int findKthLargest(vector<int>& nums, int k) {sort(nums.begin(),nums.end());int n nums.size();return nums[n-k];} }; 这显然不能出现在面试中&#xff0c;因为面试官考察的不是这个。 正确的代码&#…...

QT与嵌入式——搭建串口

1、源码 由于我需要不止一个串口来进行数据交互&#xff0c;所以简单的封装了一下 void Usb_Init(QString portName, QSerialPort *Port) {Port->setPortName(portName);Port->setBaudRate(QSerialPort::Baud115200); // 设置波特率&#xff0c;根据你的开发板配置修改…...

Shell编程-6

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shell(6)if条件判断与for循环结构_哔哩哔哩_bilibili 一、if条件判断 在Shell脚本中&#xff0c;if语句用于基于条件的评估来执行不同的代码块。…...

使用 Postman 设置 Bearer Token 进行身份验证

学习笔记 1. 打开 Postman 并创建新请求 打开 Postman。 在左上角点击 按钮&#xff0c;创建一个新的请求。 2. 选择 HTTP 方法 在请求类型&#xff08;默认为 GET&#xff09;旁边的下拉菜单中&#xff0c;选择你需要的 HTTP 方法&#xff0c;如 POST、GET、PUT 等。 3…...

现在转前端怎么样?

互联网技术日新月异&#xff0c;软件开发者追逐技术浪潮的脚步从未停歇。在这个快速发展的行业中&#xff0c;如何规划自己的职业道路&#xff0c;选择合适的技术方向&#xff0c;成为了许多开发者面临的重要抉择。本文将围绕技术选择这个话题&#xff0c;分享一些深入的思考和…...

【算法一周目】滑动窗口(1)

目录 长度最小的子数组 解题思路 代码实现 无重复字符的最大字串 解题思路 代码实现 最大连续1的个数l l l 解题思路 代码实现 将x减到0的最小操作数 解题思路 代码实现 长度最小的子数组 题目链接&#xff1a;209. 长度最小的子数组题目描述&#xff1a; 给定一个…...

React Native 基础

React 的核心概念 定义函数式组件 import组件 要定义一个Cat组件,第一步要使用 import 语句来引入React以及React Native的 Text 组件: import React from react; import { Text } from react-native; 定义函数作为组件 const CatApp = () => {}; 渲染Text组件...

西部数码网站管理助手 数据库/昆明自动seo

使用内存监测工具 DDMS –> Heap操作步骤1.启动eclipse后&#xff0c;切换到DDMS透视图&#xff0c;并确认Devices视图、Heap视图都是打开的&#xff0c;没打开的直接Window>ShowView>自己选2.将手机通过USB链接至电脑&#xff0c;链接时需要确认手机是处于“USB调试”…...

wordpress详细安装教程/网络营销事件

本人从Angular2时代开始用&#xff0c;当时全国都没什么人敢碰Angular2&#xff0c;我们就靠着啃它源代码中的注释&#xff0c;熟悉了Angular2的用法&#xff0c;并在实用中&#xff0c;还给Angular2团队提交bug。因此&#xff0c;这里提供给大家最实用的比较&#xff0c;帮助大…...

三合一网站选什么系统/深圳全网营销型网站

C中的格式化输出变参函数一、C中的格式化输出变参函数二、应用示例一、C中的格式化输出变参函数 C中的格式化输出变参函数有&#xff1a; int vprintf(const char *format,va_list ap); // 格式化字符串标准输出 int vfprintf(FILE *stream,const char *format,va_list ap); /…...

怎么仿制一个网站/seo排名优化推广

很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.一,linux本身没有图形界面,linux现在的图形界面的实现只是…...

用自己的电脑做服务器建网站/关键词推广哪家好

ARM系列之RM 平台安全架构PSA 浅析 1、背景2、PSA安全认证2.1 什么是PSA&#xff1f;2.2 功能性 API 认证2.3 PSA安全认证&#xff08;待完善&#xff09;3、专用的开源安全固件代码1、背景 在互联网飞速发展过程中&#xff0c;安全问题始终贯穿其中。在这场安全保卫战中&…...

Ecshop网站建设总结/网络运营怎么学

往期博客目录 1. 详解Linux&#xff08;基础篇&#xff09; 2. 详解Linux&#xff08;进阶篇&#xff09; 3. Git&GitHub&#xff08;基础&#xff09; 4. Git&GitHub&#xff08;进阶&#xff09; 5. java多线程 6. JavaScript 总结 7. SpringMVC&#xff08;一&…...