解读Python脚本的常见参数获取和处理方式

 更新时间:2022年09月06日 10:45:52   作者:Python 学习者  
这篇文章主要介绍了Python脚本的常见参数获取和处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Python脚本常见参数获取和处理

平常写 python 脚本时会有一些从命令行获取参数的需求,这篇文章记录下常见的参数获取和处理方式。

1. 使用args获取参数

使用 sys.argv[] 可以接收脚本的参数,得到一个列表类型,列表第一个元素是脚本名称,通过 sys.argv[1:] 得到命令行传进来的所有参数。

代码示例:

test_args.py
import sys
argv = sys.argv[1:]
print("args==argv==", argv)

代码执行效果:

2. 使用getopt处理命令行传入的参数

getopt 是专门用来处理命令行参数,使用格式大概为getopt(args, shortopts, longopts = []),其中参数 args 一般是sys.argv[1:], shortopts 是短格式参数 (-),longopts 是长格式参数(–)

代码示例:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
test_args.py
argv = sys.argv[1:]
print("args==argv==", argv)
options, args = getopt.getopt(sys.argv[1:], "hd:n:", ["help", "date=", "name="])
print("args==getopt==",options, "options=====", args)

代码执行结果:

3. 标准库argsparse

argsparse 是 python 的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行。

代码示例:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
test_args.py
import argparse
parser = argparse.ArgumentParser(description='ArgUtils')
parser.add_argument('-d', type=str, default='000000', help="data date")
parser.add_argument('-a', type=str, default=None, help="agent_id_from_platform id")
args = parser.parse_args()

在 add_argument函数中,第一个参数是脚本参数传入名称;type 是限制传入参数的类型;default 为参数设置默认值;required 设置参数是否为必传。

代码执行效果:

总得来说,args兼容性比较强,可以接收任意方式的传参,getopt 对传入参数进行了分组,argparse 则使传入的参数可读性更高,支持的功能多一些。

Python脚本获取外部参数

方式1

使用sys模块获取参数,比较简单

import sys
print("python文件名: ", sys.argv[0])
print("第1个参数: ", sys.argv[1])
print("第2个参数: ", sys.argv[2])
# 传参方式
python test.py arg1 arg2

方式2

如果参数较多,参数有默认值,建议使用argparse模块,阅读性更高。

可以定义参数类型、默认值。

import argparse
# 设置参数名
parser = argparse.ArgumentParser()
parser.add_argument("-username", dest="username", type=str)
parser.add_argument("-password", dest="password", type=str)
parser.add_argument("-date", dest="date", type=str, default='2021-01-01')
# 获取参数
args = parser.parse_args()
username = args.username
password = args.password
date = args.date
# 传参方式
python test.py -username=xxx -password=xxx

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python分割列表(list)的方法示例

    python分割列表(list)的方法示例

    这篇文章主要给大家介绍了python分割列表(list)的方法,文中给出了详细的示例代码大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Python实现GIF动图以及视频卡通化详解

    Python实现GIF动图以及视频卡通化详解

    本文主要介绍了如何使用Python中的animegan2-pytorch实现动图以及视频的卡通化效果,文中的代码具有一定的学习价值,需要的朋友可以参考一下
    2021-12-12
  • 我们为什么要减少Python中循环的使用

    我们为什么要减少Python中循环的使用

    这篇文章主要介绍了我们为什么要减少Python中循环的使用,我将阐述 Python 提供的一些简单但是非常有用的结构,一些小技巧以及一些我在数据科学工作中遇到的案例。我将讨论 Python 中的 for 循环,以及如何尽量避免使用它们,需要的朋友可以参考下
    2019-07-07
  • Pyramid Mako模板引入helper对象的步骤方法

    Pyramid Mako模板引入helper对象的步骤方法

    ylons中的mako模板,默认会引入一个helper对象,我们可以在里面扩展方法,应对在模板输出时候会常用的操作,那么在Pyramid中如何默认引入同样的辅助类到模板中
    2013-11-11
  • 深入理解Python装饰器

    深入理解Python装饰器

    装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。这篇文章主要介绍了深入理解Python装饰器的相关资料,需要的朋友可以参考下
    2016-07-07
  • 使用python加密自己的密码

    使用python加密自己的密码

    本文给大家分享的是使用python加密自己的密码的思路和代码,非常的简单实用,有需要的小伙伴可以参考下。
    2015-08-08
  • Python下实现的RSA加密/解密及签名/验证功能示例

    Python下实现的RSA加密/解密及签名/验证功能示例

    这篇文章主要介绍了Python下实现的RSA加密/解密及签名/验证功能,结合具体实例形式分析了Python中RSA加密、解密的实现方法及签名、验证功能的使用技巧,需要的朋友可以参考下
    2017-07-07
  • 搭建 Selenium+Python开发环境详细步骤

    搭建 Selenium+Python开发环境详细步骤

    这篇文章主要介绍了搭建 Selenium+Python开发环境详细步骤的相关资料,需要的朋友可以参考下
    2022-10-10
  • python导包的几种方法(自定义包的生成以及导入详解)

    python导包的几种方法(自定义包的生成以及导入详解)

    这篇文章主要介绍了python导包的几种方法(自定义包的生成以及导入详解),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python爬虫基本知识

    python爬虫基本知识

    最近在做一个项目,这个项目需要使用网络爬虫从特定网站上爬取数据,于是乎,我打算写一个爬虫系列的文章,与大家分享如何编写一个爬虫。下面这篇文章给大家介绍了python爬虫基本知识,感兴趣的朋友一起看看吧
    2018-03-03

最新评论