python argparser的具体使用

下面是关于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日

相关文章

  • 如何对代表图像的NumPy数组进行重采样

    为了对代表图像的NumPy数组进行重采样,我们可以使用SciPy库中的interp函数。interp函数通过线性或立方体插值来改变数组的大小,并返回一组新的数组。 以下是重采样图像的完整攻略: 1. 导入必要的库 import numpy as np import scipy.interpolate as interp 2. 创建一个代表图像的numpy数组…

    python-answer 2023年3月25日
    00
  • python matplotlib工具栏源码探析二之添加、删除内置工具项的案例

    这篇攻略将讲解如何在 Matplotlib 中添加和删除内置工具项。我们将使用 Python 编程语言探索 Matplotlib 工具栏源代码,并提供两个示例说明如何添加和删除内置工具项。 1. 概述 Matplotlib 提供了许多内置工具,例如:“放大工具、缩小工具、保存工具”等。但是,有时候,我们的工作需要一些定制化的工具,因此添加和删除工具项就变得非…

    python 2023年5月18日
    00
  • 解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题

    如果使用pyinstaller打包Python脚本生成的可执行文件太大,可以使用pipenv来缩小打包后的文件大小。下面是具体的攻略: 步骤一:下载pipenv 首先要确保pipenv已经安装在本地计算机上。如果没有安装可以使用以下命令安装: pip install pipenv 步骤二:创建虚拟环境 在你的工程目录下,使用以下命令创建一个新的虚拟环境: p…

    python 2023年6月13日
    00
  • Python timer定时器两种常用方法解析

    Python timer定时器两种常用方法解析 当我们需要在代码中设置定期执行某个任务时,Python内置的timer定时器可以非常方便地帮助我们完成。在本文中,我们将详细讲解Python timer定时器的两种常用方法,并且提供示例说明。 方法一:使用Threading模块 Threading模块是Python中用于多线程编程的核心模块之一。我们可以通过该…

    python 2023年5月19日
    00
  • Python 函数头等对象

    Python 中的函数不仅仅是执行代码的一段程序,还可以被当做一个对象来使用。这种特殊的对象被称为函数头等对象,也就是函数可以像变量一样直接使用。在这里,我们将详细说明如何使用Python函数头等对象以及常见的用法。 函数头等对象的使用方法 获取函数对象: Python 中定义函数后,可以通过直接将函数名赋值给变量来获取函数头等对象。例如,f = funct…

    python-answer 2023年3月25日
    00
  • 是否可以将此 Python 代码翻译成 Cython?

    【问题标题】:Is it possible to translate this Python code to Cython?是否可以将此 Python 代码翻译成 Cython? 【发布时间】:2023-04-06 01:23:01 【问题描述】: 我实际上希望尽可能加快此代码的#2,所以我认为尝试 Cython 可能会很有用。但是,我不确定如何在 Cyth…

    Python开发 2023年4月6日
    00
  • python对于requests的封装方法详解

    以下是关于Python对于requests的封装方法的攻略: Python对于requests的封装方法详解 在Python中,我们可以对requests库进行封装,以便更方便地使用。以下是Python对于requests的封装方法详解: 封装GET请求 以下是封装GET请求的示例: import requests def get(url, params=N…

    python 2023年5月14日
    00
  • python中join()方法介绍

    当我们需要将一个列表中的元素连接在一起,生成一个字符串时,可以使用 Python 中的join() 方法。 join()方法的语法 join() 方法的语法如下: 字符串连接符.join(序列) 其中,字符串连接符是用于连接序列中各个元素的字符串。序列是需要连接的所有元素,可以是一个列表、元组或字符串。 join()方法的示例 下面我们通过两个例子来演示 j…

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