解读Python脚本的常见参数获取和处理方式
作者:Python?学习者 时间:2022-07-17 03:36:02
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
来源:https://blog.csdn.net/sinat_38682860/article/details/111822359
标签:Python,参数获取,Python处理
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
在GitHub Pages上使用Pelican搭建博客的教程
2021-08-02 18:47:48
![](https://img.aspxhome.com/file/2023/9/105319_0s.png)
Python for循环通过序列索引迭代过程解析
2021-11-30 05:36:50
GoLang nil与interface的空指针深入分析
2024-02-18 01:58:50
![](https://img.aspxhome.com/file/2023/4/105154_0s.png)
oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
2009-06-19 17:21:00
SQL的常用数据类型列表详解
2024-01-15 05:25:07
sql 随机抽取几条数据的方法 推荐
2024-01-29 09:15:32
python使用__slots__让你的代码更加节省内存
2023-03-15 06:33:57
![](https://img.aspxhome.com/file/2023/5/77805_0s.jpg)
Python3的高阶函数map,reduce,filter的示例详解
2024-01-02 21:16:19
python实现在列表中查找某个元素的下标示例
2023-08-20 07:16:38
![](https://img.aspxhome.com/file/2023/5/131155_0s.png)
Python pandas.DataFrame调整列顺序及修改index名的方法
2023-11-22 20:53:59
python连接mongodb操作数据示例(mongodb数据库配置类)
2023-05-01 17:21:17
mysql的XA事务恢复过程详解
2024-01-18 07:44:22
django模板加载静态文件的方法步骤
2023-04-12 17:13:26
asp下查询xml的实现代码
2011-04-19 10:37:00
Python使用pymongo库操作MongoDB数据库的方法实例
2023-06-04 06:20:22
Python中赋值的含义及说明
2023-01-05 23:11:38
![](https://img.aspxhome.com/file/2023/4/120574_0s.png)
python的time模块和datetime模块实例解析
2023-11-13 09:54:56
python线程安全及多进程多线程实现方法详解
2023-08-27 02:01:54
SQL Server 2000安装故障
2008-01-22 19:10:00
Linux下编译安装MySQL-Python教程
2021-05-03 05:05:40