【python】argparse 模块的使用、Pycharm中使用argparse

news/2024/6/3 16:51:44 标签: python, pycharm, 开发语言

目录

  • 1、简介
  • 2、使用步骤
    • 1)导入argparse模块,并创建解释器
    • 2)添加所需参数
    • 3)解析参数
  • 3、使用 pycharm 传递参数给 argparse

1、简介

argparse 模块是 Python 标准库中提供的一个命令行解析模块,它可以让使用者以类似 Unix/Linux 命令参数的方式输入参数,并将参数解析为 Python 变量,从而方便使用者更加快捷的处理参数。


2、使用步骤

1)导入argparse模块,并创建解释器

python">import argparse

# 创建解释器
parser = argparse.ArgumentParser(description="可写可不写,只是在命令行参数出现错误的时候,随着错误信息打印出来。")

2)添加所需参数

python">parser.add_argument('-gf', '--girlfriend', choices=['jingjing', 'lihuan'])
# -gf 代表短选项,在命令行输入-gf和--girlfriend的效果是一样的,作用是简化参数输入
#--girlfriend 代表完整的参数名称,可以尽量做到让人见名知意,需要注意的是如果想通过解析后的参数取出该值,必须使用带--的名称
# choices 代表输入参数的只能是这个choices里面的内容,其他内容则会保错

parser.add_argument('--house', type=int, default=0)
# --house 代表参数名称
# type  代表输入的参数类型,从命令行输入的参数,默认是字符串类型
# default 代表如果该参数不输入,则会默认使用该值

parser.add_argument('food')
# 该种方式则要求必须输入该参数
# 输入该参数不需要指定参数名称,指定反而报错,解释器会自动将输入的参数赋值给food

3)解析参数

python"># 进行参数解析
args = parser.parse_args() 
print('args-----:',args)
print('gf-------:', args.girlfriend)
print('food-----:', args.food)

在终端运行结果:

python">(base) enzo@enzo-MBP test % python main.py apple -gf jingjing      
args-----: Namespace(girlfriend='jingjing', house=0, food='apple')
gf-------: jingjing
food-----: apple

pycharm__argparse_59">3、使用 pycharm 传递参数给 argparse

上面的操作,我们是通过 命令行 给 python 程序传递参数,一般适合于我们在 GPU 等 linux 操作系统中训练模型使用。
但是在平时我们调试算法的时候就会很不方便,没有办法利用编译器进行debug,所以接下来介绍如何在 Pycharm 中传递参数给 argparse,方便 pycharm 进行运行这类python程序。

1、如下图,点击 Edit configurations
在这里插入图片描述

2、在Parameters中添加需要的参数(只写参数),多个参数之间用空格隔开
在这里插入图片描述
3、最后直接运行,可以看到,把我们设置在Parameters里面设置的参数,会在Run的时候补全

在这里插入图片描述


http://www.niftyadmin.cn/n/89176.html

相关文章

聚观早报 | 嘀嗒出行重启赴港IPO;饿了么到店业务将与高德合并

点击蓝字 / 关注我们今日要闻:嘀嗒出行重启赴港 IPO;饿了么到店业务将与高德合并;美团香港骑手月收入高达3.5万港元;腾讯或引进Meta旗下VR眼镜Quest 2;苹果将阻止用户免费装开测版iOS 17 嘀嗒出行重启赴港 IPO 港交所文…

【极海APM32替代笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时

【极海APM32替代笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时 外部定时器 采用定时器做延时使用时 需要计算好分频和计数 另外还要配置为不进行自动重载 对于50MHz的工作频率 分频为50-1也就是50M/501M 一次计数为1us 分频为50000-1也就是1k 一次计数为1ms 我配置的是…

从“蛙步”到“雁行”vivo的新周期与新常态

作者 | 曾响铃 文 | 响铃说 近日,Counterpoint Research发布最新报告显示,2023年初,智能手机销量迅速逐周攀升,甚至在春节开始前一周销量达到700万台以上,1月份环比去年12月份增长超40%。 这或许是近些时日以来&…

【第一章 - 绪论】- 数据结构(近八千字详解)

目录 一、 数据结构的研究内容 二、基本概念和术语 2.1 - 数据、数据元素、数据项和数据对象 2.2 - 数据结构 2.2.1 - 逻辑结构 2.2.2 - 存储结构 2.3 - 数据类型和抽象数据类型 三、抽象数据类型的表现与实现 四、算法和算法分析 4.1 - 算法的定义及特性 4.2 - 评价…

、Tomcat源码分析-spring boot集成tomcat

tomcat 外部配置 前面我们分析了 spring boot 与 tomcat 的集成,我们再来看看 spring boot 是如何为 serlvet 容器设置参数的。首先,来看一下常用的配置,内嵌容器的配置以 server 开头,下面的示例采用 yml 格式,prope…

j6-IO流泛型集合多线程注解反射Socket

IO流 1 JDK API的使用 2 io简介 输入流用来读取in 输出流用来写出Out 在Java中,根据处理的数据单位不同,分为字节流和字符流 继承结构 java.io包: File 字节流:针对二进制文件 InputStream --FileInputStream --BufferedInputStre…

互联网行业中,哪些岗位越老越吃香?

你是不是也想转行IT行业,找一门适合自己学习,能拿高薪的技术,最好还越老越吃香?或许先应该看看对应岗位,老资格的同行们可以拿到的薪资数再做判断。整体上看,大部分岗位的起薪水平相差不大,但随…

Linux 实现鼠标侧边键实现代码与网页的前进、后退

前言 之前一直是使用windows进行开发,最近转到linux后使用VsCode编写代码。 但是不像在win环境下,使用鼠标侧边键可以实现代码的前向、后向跳转。浏览网页时也不行(使用Alt Left可以后退)。 修改键盘映射实在没有那么方便&…