Python命令行参数快速入门

一、理解Python命令行参数

当我们在终端输入一条Python命令时,可能需要添加一些参数来指定程序的运行方式。这些参数一般以–或-为前缀,后面跟上参数名称和对应的值。

比如,我们执行python程序时指定一些参数:

$ python program.py --input input_file.txt --output output_file.txt --verbose

在这个例子中,–input、–output和–verbose都是程序的参数。–input和–output后面跟随的是文件名,–verbose则不需要值。Python提供了一个内置的模块argparse,可以用来解析命令行参数。

二、使用argparse模块

使用argparse模块可以使得从命令行中读取参数变得容易,下面是一个简单的例子,演示如何使用argparse模块解析命令行参数:

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max, help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

在上述代码中,我们创建了一个ArgumentParser对象,在add_argument方法中添加了两个参数:integers和–sum。

其中,integers是一个位置参数,代表在程序中需要读取一个或多个整数。nargs=’+’表示该参数可以接收多个整数值,最终会被转化成列表。metavar=’N’指定当命令行参数出现问题时打印的参数名称。

–sum是一个可选参数,代表程序需要对接收到的整数进行操作。dest=’accumulate’指定当参数出现时需要将其结果存储在args.accumulate中,而action=’store_const’表示当此参数出现时,const=sum会存储在args.accumulate中,如果没有出现,const=default的值会被存储在args.accumulate中。

执行上述程序,传入参数为:1 2 3 4 5,则会执行结果为:15。

三、常用参数类型

argparse模块支持多种数据类型的参数,下面是一些常见的数据类型:

1. position(位置)

位置参数是必须提供的,它们按照它们被定义的顺序从命令行读取。例如:

parser = argparse.ArgumentParser()
parser.add_argument("source")
parser.add_argument("destination")
args = parser.parse_args()

这将解析Python程序的命令行参数,程序必须包含两个参数(source和destination)的位置参数。执行结果为:

$ python program.py file1.txt file2.txt

2. Optional(可选)

可选参数是通过名称而不是位置指定的。例如:

parser = argparse.ArgumentParser()
parser.add_argument("--source")
parser.add_argument("--destination")
args = parser.parse_args()

这个程序将读取两个可选参数–source和–destination。执行时可以不带可选参数:

$ python program.py

或者指定一个参数:

$ python program.py --source file1.txt

3. 支持多个值

argparse还提供了一个选项,允许一个参数多次使用。例如我们在命令行上传递多个文件名,可以使用:

parser = argparse.ArgumentParser()
parser.add_argument("file_list", nargs="+")
args = parser.parse_args()

参数nargs=”+“允许file_list参数为多个值:

$ python program.py file1.txt file2.txt directory/*.txt

4. 布尔值

可以使用store_true / store_false选项,将程序中的布尔值参数处理为命令行选项。例如:

parser = argparse.ArgumentParser()
parser.add_argument("--debug", action="store_true")
args = parser.parse_args()

可选参数–debug现在是布尔类型的,如果提供了这个选项,Python中的args.debug将为True。否则为False。

四、处理命令行参数

在我们使用argparse程序解析了命令行参数后,我们仍然需要使用它们执行程序。下面的代码展示了如何使用argparse来处理命令行参数:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--input", help="input file path")
parser.add_argument("--output", help="output file path")
parser.add_argument("--verbose", help="increase output verbosity", action="store_true")

args = parser.parse_args()

if args.verbose:
    print("verbose mode on")

with open(args.input, "r") as infile, open(args.output, "w") as outfile:
    for line in infile:
        outfile.write(line)
print("done")

在上述代码中,我们声明了三个可选参数–input、–output 和–verbose。–input和–output参数我们使用了help关键字为其添加描述。

在使用args.input和args.output时,需要判断传入的参数是否为None。通过判断args.verbose可以在程序中开启或关闭verbose模式,即输出更多信息。

五、总结

本文主要介绍了Python命令行参数的基础知识,以及使用argparse模块解析命令行参数的方法,同时列举了几种常见的命令行参数类型和处理方法。熟悉这些方法可以使得Python程序的调用更加方便和灵活。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/184043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-25 05:50
下一篇 2024-11-25 05:51

相关推荐

  • Python wordcloud入门指南

    如何在Python中使用wordcloud库生成文字云? 一、安装和导入wordcloud库 在使用wordcloud前,需要保证库已经安装并导入: !pip install wo…

    编程 2025-04-29
  • Ojlat:一款快速开发Web应用程序的框架

    Ojlat是一款用于快速开发Web应用程序的框架。它的主要特点是高效、易用、可扩展且功能齐全。通过Ojlat,开发人员可以轻松地构建出高质量的Web应用程序。本文将从多个方面对Oj…

    编程 2025-04-29
  • Python小波分解入门指南

    本文将介绍Python小波分解的概念、基本原理和实现方法,帮助初学者掌握相关技能。 一、小波变换概述 小波分解是一种广泛应用于数字信号处理和图像处理的方法,可以将信号分解成多个具有…

    编程 2025-04-29
  • 三星内存条参数用法介绍

    本文将详细解释三星内存条上面的各种参数,让你更好地了解内存条并选择适合自己的一款。 一、容量大小 容量大小是内存条最基本的参数,一般以GB为单位表示,常见的有2GB、4GB、8GB…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Spring Boot中发GET请求参数的处理

    本文将详细介绍如何在Spring Boot中处理GET请求参数,并给出完整的代码示例。 一、Spring Boot的GET请求参数基础 在Spring Boot中,处理GET请求参…

    编程 2025-04-29
  • Python input参数变量用法介绍

    本文将从多个方面对Python input括号里参数变量进行阐述与详解,并提供相应的代码示例。 一、基本介绍 Python input()函数用于获取用户输入。当程序运行到inpu…

    编程 2025-04-29
  • Hibernate日志打印sql参数

    本文将从多个方面介绍如何在Hibernate中打印SQL参数。Hibernate作为一种ORM框架,可以通过打印SQL参数方便开发者调试和优化Hibernate应用。 一、通过配置…

    编程 2025-04-29
  • Python Class括号中的参数用法介绍

    本文将对Python中类的括号中的参数进行详细解析,以帮助初学者熟悉和掌握类的创建以及参数设置。 一、Class的基本定义 在Python中,通过使用关键字class来定义类。类包…

    编程 2025-04-29
  • Python函数名称相同参数不同:多态

    Python是一门面向对象的编程语言,它强烈支持多态性 一、什么是多态多态是面向对象三大特性中的一种,它指的是:相同的函数名称可以有不同的实现方式。也就是说,不同的对象调用同名方法…

    编程 2025-04-29

发表回复

登录后才能评论