文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯