python argparser的具体使用

yizhihongxing

下面是关于Python Argparse的详细使用攻略。

什么是Python Argparse?

Python Argparse是Python语言中的一个命令行参数解析器,可以让我们通过命令行调用程序时,方便地传递参数和选项,进而在程序内部进行处理。

Argparse基本用法

我们可以通过如下代码导入argparse模块(通常使用缩写argpase):

import argparse

然后,我们可以定义一个ArgumentParser对象,如:

# 创建一个ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个使用Argparse的示例程序')

ArgumentParser对象可通过description参数设置程序的描述信息。接下来,可以通过add_argument()方法来定义命令行参数和选项(也称为argument和option):

parser.add_argument('my_argument', help='这是我的命令行参数')
parser.add_argument('--my_option', help='这是我的命令行选项')

这里第一个参数my_argument为命令行参数,使用时不带--,而第二个参数--my_option为可选的命令行选项,使用时需要带--

add_argument()方法还包含很多其它的可选参数,如:

  • type:设定选项和参数的数据类型;
  • required:指定是否必须传入该选项或参数;
  • default:在未指定选项或参数时的默认值;
  • nargs:指定该选项或参数的值应该有几个;
  • 等等。

一些常用的add_argument()示例如下:

parser.add_argument('filename', help='文件名')
parser.add_argument('--out', '-o', default='output', help='输出目录')
parser.add_argument('--debug', action='store_true', help='输出调试信息')
parser.add_argument('--count', type=int, default=1, help='同时运行的线程数')

最后,我们可以通过parse_argv()方法来解析命令行参数:

args = parser.parse_args()

此时变量args的值将会是包含所有参数和选项的一个命名空间Namespace对象,其中的属性就是我们定义的参数和选项。

例如,我们可以通过args.filename来获取命令行参数filename的值,通过args.debug来获取选项--debug的值。

Python Argparse示例

示例一

在这个示例中,我们将解析计算两个数字之和的命令行参数。

import argparse

# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个计算两个数字之和的示例程序')

# 添加position argument
parser.add_argument('num1', help='第一个数字')
parser.add_argument('num2', help='第二个数字')

# 解析命令行参数
args = parser.parse_args()

try:
    sum = int(args.num1) + int(args.num2)
    print(f'{args.num1} + {args.num2} = {sum}')
except ValueError:
    print('错误:所提供的num1和num2参数必须是整数')

运行该程序,例如:

python my_script.py 2 3

会输出如下结果:

2 + 3 = 5

若传入的num1或num2不是整数,则会得到类似于以下的错误信息:

错误:所提供的num1和num2参数必须是整数

示例二

在这个示例中,我们将解析将给定的数组排序并将结果输出到指定文件中的命令行参数。

import argparse

# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个将数组排序并输出到文件中的示例程序')

# 添加position argument
parser.add_argument('input', help='要排序的数组')
parser.add_argument('output', help='输出文件')

# 添加optional argument
parser.add_argument('--reverse', action='store_true', help='使用逆序排列')

# 解析命令行参数
args = parser.parse_args()

# 读入数组并排序
with open(args.input, 'r') as f:
    nums = f.read().split()
    if args.reverse:
        nums.sort(reverse=True)
    else:
        nums.sort()

# 输出结果到文件
with open(args.output, 'w') as f:
    for num in nums:
        f.write(num+'\n')

运行该程序,例如:

python my_script.py input.txt output.txt --reverse

会将文件input.txt中的数据排序后,以逆序输出到文件output.txt中。

使用参数--reverse将会得到倒序输出的结果,而不使用该参数则为顺序输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python argparser的具体使用 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python极简代码实现杨辉三角示例代码

    下面是Python极简代码实现杨辉三角的攻略。 一、杨辉三角的定义 杨辉三角,又称帕斯卡三角形,是二项式系数在三角形中的一种几何排列。它的形状像一个三角形,内容则由数字组成,数字是由它上面的两个数字相加而得出的,它最左侧和最右侧的数字都是1。 下面是一个6行的杨辉三角: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 11 5 10 10 5 1 二…

    python 2023年5月19日
    00
  • Python eval函数介绍及用法

    Python eval函数介绍及用法 eval()函数是Python内置的一个函数,它可以将字符串str当成有效的表达式来求值并返回计算结果。eval()函数可以理解为一个将字符串转换为可执行表达式的工具。下面我们来详细介绍一下Python eval函数的用法及相关示例。 eval函数用法 eval函数的语法格式如下: eval(expression, gl…

    python 2023年6月3日
    00
  • python绘制lost损失曲线加方差范围的操作方法

    接下来我将详细讲解Python绘制lost损失曲线加方差范围的操作方法的完整攻略: 1. 安装必需库 在绘制lost损失曲线加方差范围之前,需要先安装一些必需库,包括matplotlib、numpy和seaborn。 pip install matplotlib numpy seaborn 2. 准备数据 准备数据时,需要给定具体的损失值、方差值等参数,比如…

    python 2023年6月3日
    00
  • python实现csv格式文件转为asc格式文件的方法

    这里是使用Python实现csv格式文件转为asc格式文件的完整攻略。 1. 什么是CSV格式文件? CSV格式文件全称为Comma-Separated Values,是一种文本格式,也是一种通用的数据交换格式。CSV文件中的每个数据字段都是由逗号分隔的,每行表示一个记录。CSV文件可用文本编辑器打开和编辑,非常的易读和非常的通用,是互联网上常见的数据交换格…

    python 2023年5月20日
    00
  • Python+PuLP实现线性规划的求解

    下面是Python+PuLP实现线性规划的求解的完整攻略。 什么是线性规划? 线性规划是指在一定限制条件下,使某一目标函数达到最大或最小值的问题。线性规划问题可以表示为: $$\max_{x}c^Tx$$ $$s.t.\ \ Ax\le b$$ 其中,$x$为变量向量,$c$为目标函数系数向量,$A$为约束系数矩阵,$b$为约束条件向量。 PuLP简介 Pu…

    python 2023年6月5日
    00
  • Python常见格式化字符串方法小结【百分号与format方法】

    下面是Python常见格式化字符串方法小结的完整攻略。 Python常见格式化字符串方法小结【百分号与format方法】 介绍 在Python中,格式化字符串是一个经常用到的功能。Python提供了两种常见的格式化字符串方法,分别是百分号(%)方法和format方法。这两种方法可以让我们方便地将变量、常量等数据组合成字符串,有很广泛的应用场景。本文将对这两种…

    python 2023年6月5日
    00
  • python调用百度语音REST API

    下面给您详细讲解Python调用百度语音REST API的完整攻略。 什么是百度语音REST API 百度语音REST API是百度提供的语音识别、语音合成、人脸识别等功能接口,可以通过HTTP或HTTPS协议请求,返回结果以JSON格式返回。相比于其他技术方案,百度的语音技术有以下优势: 识别准确率高:百度的语音识别准确率达到了业界领先水平; 支持离线识别…

    python 2023年5月19日
    00
  • python批量将excel内容进行翻译写入功能

    下面我将为您讲解如何使用Python批量将Excel内容进行翻译并写入的完整实例教程。这个过程主要分为三步,具体如下: 步骤一:安装所需依赖 首先,我们需要安装Python的依赖库openpyxl和googletrans。这两个库均可通过pip进行安装。 pip install openpyxl googletrans==3.1.0a0 步骤二:编写代码 接…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部