热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonargvparser_Python命令行参数argv和argparse该如何使用

概述运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:sys.argv-简洁argparse-丰富,可自定义下面详细说一下具体时使

概述

运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:

sys.argv - 简洁

argparse - 丰富,可自定义

下面详细说一下具体时使用

argv

# test_argv.py

import sys

args = sys.argv

print(f'args = {args}')

>>> output

➜ git:(master) python3 test_argv.py

args = ['test_argv.py']

➜ git:(master) ✗ python3 test_argv.py 1 2 3

args = ['test_argv.py', '1', '2', '3']

➜ git:(master) ✗ python3 test_argv.py 1 2 3 'hello world !'

args = ['test_argv.py', '1', '2', '3', 'hello world !']

从上面可以看出,通过argv方法获取的结果:

返回为list

第一个参数为脚本本身

如参数中间带空格,用引号即可

argparse

argparse模块的功能较为丰富,其核心是通过add_argument方法自定义入参的:标志、格式、类型和范围等特性,常用如下:

*name_or_flag - 定义入参名或flag,如'-n', '--number'

type - 指定入参类型

choices - 指定入参范围

default - 指定入参默认值

required - 指定该餐素是否不要,布尔类型

help - 参数概述

更多请参考: argparse

实例

test_argv.py

import argparse

# 初始化一个parser对象

parser = argparse.ArgumentParser(description='test module of argparse')

# 指定-n/--number的参数

# 类型为int

# help为简短地说明

parser.add_argument(

'-n', '--number', type=int,

help='args of number'

)

# 指定-o/--output参数

# 并限制类型为:['txt', 'csv', 'doc']

parser.add_argument(

'-o', '--output', type=str,

choices=['txt', 'csv', 'doc'],

help='output method'

)

# 指定-d/--default参数

# 并限制类型为:['txt', 'csv', 'doc']

parser.add_argument(

'-d', '--default', type=int,

choices=[_ for _ in range(1, 10)],

default=5,

help='default'

)

# 指定位置参数foo

parser.add_argument('foo')

args = parser.parse_args()

print(f'args = {args}')

# 获取指定参数

print(

f'number = {args.number}, type = {type(args.number)}\n'

f'output = {args.output}, type = {type(args.output)}\n'

f'default = {args.default}, type = {type(args.default)}\n'

f'foo = {args.foo}, type = {type(args.foo)}'

)

output

# -h - 打印help

➜ git:(master) ✗ python3 test_argv.py -h

usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]

[-d {1,2,3,4,5,6,7,8,9}]

foo

test module of argparse

positional arguments:

foo

optional arguments:

-h, --help show this help message and exit

-n NUMBER, --number NUMBER

args of number

-o {txt,csv,doc}, --output {txt,csv,doc}

output method

-d {1,2,3,4,5,6,7,8,9}, --default {1,2,3,4,5,6,7,8,9}

default

# 不带参数运行,结果为None

➜ git:(master) ✗ python3 test_argv.py

args = Namespace(number=None, output=None)

number = None

output = None

# 带参数运行

➜ git:(master) ✗ python3 test_argv.py -n 33 --output txt

args = Namespace(number=33, output='txt')

number = 33, type =

output = txt, type =

# 参数格式错误

➜ git:(master) ✗ python3 test_argv.py -n str

usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]

test_argv.py: error: argument -n/--number: invalid int value: 'str'

➜ git:(master) ✗ python3 test_argv.py -o excel

usage: test_argv.py [-h] [-n NUMBER] [-o {txt,csv,doc}]

test_argv.py: error: argument -o/--output: invalid choice: 'excel' (choose from 'txt', 'csv', 'doc')

# 默认参数

➜ git:(master) ✗ python3 test_argv.py

args = Namespace(default=5, number=None, output=None)

number = None, type =

output = None, type =

output = 5, type =

以上就是Python命令行参数argv和argparse该如何使用的详细内容,更多关于Python命令行参数argv和argparse的资料请关注WEB开发者其它相关文章!

扫描关注:"WEB开发者网“公众号,分享WEB开发知识,让开发变得更简单!



推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
author-avatar
我的双宝宝_486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有