用python写一个专业的传参脚本

简介: 问:linux系统命令如ls,它有几十个参数,可带一个或多个参数,可不分先后,用起来是非常的专业。但是自己写的传参脚本,一般只传一个参数,如果传多个,也是固定的顺序,那么如何用python写出更专业的传参脚本呢?答:使用python自带的getopt模块。

问:linux系统命令如ls,它有几十个参数,可带一个或多个参数,可不分先后,用起来是非常的专业。但是自己写的传参脚本,一般只传一个参数,如果传多个,也是固定的顺序,那么如何用python写出更专业的传参脚本呢?

答:使用python自带的getopt模块。

 

1、语法:

import getopt

getopt.getopt(args,shortopts, longopts=[])

#函数示例:getopt.getopt(sys.argv[1:],'u:p:P:h',["username=","password=","port=","help"])

#输出格式:[('-p', '123'),('-u', 'root')]  []   #后面中括号包含没有"-"或"--"的参数

 

2、参数说明:

args      所有传参参数,一般用sys.argv[1:]表示,即所有传参内容;

shortopts短格式,一般参数如-u,-p,-h等(一个"-"的)就是短格式;那写在函数中就是"u:p:P:h",有冒号代表有参数,没冒号代表没参数。

longopts  长格式,一般参数如--username,--password,--help等(两个"-"的)就是长格式;那写在函数中就是["usrname=",'password=","help"],其中--help是没有值的,所以没有等于号。其它有等于号,表示后面需要参数。

 

3、演示效果:

短格式传参:

[root@yang scripts]# python   getopt_test.py -u yangyun -p 123456 -P 2222

username: yangyun

password: 123456

port: 2222

 

长格式传参:(也可以加=号)

[root@yang scripts]# python   getopt_test.py  --username yangyun   --password 123456 --port 2222

username: yangyun

password: 123456

port: 2222

 

长短格式都用:

[root@yang scripts]# python   getopt_test.py  --username=yangyun -p 123456   --port 2222

username: yangyun

password: 123456

port: 2222

 

只传单个参数,其它是默认值:

[root@yang scripts]# python   getopt_test.py  -p 123456

username: root

password: 123456

port: 22

#此处port与user都用的默认值,默认值在函数里指定

 

4python传参脚本实例:

# cat  getopt_test.py

#!/usr/bin/python
#by yangyun 2015-1-11
 
import getopt 
import sys
#导入getopt,sys模块
 
#定义帮助函数
def help():
        print "Usage error!"
        sys.exit()
 
#输出用户名
def username(username):
        print 'username:',username
 
#输出密码
def password(password):
        if not password:
                help()
        else:
                print 'password:',password
 
#输出端口
def port(port):
        print 'port:',port
 
#获取传参内容,短格式为-u,-p,-P,-h,其中-h不需要传值。
#长格式为--username,--password,--port,--help,长格式--help不需要传值。
opts,args=getopt.getopt(sys.argv[1:],'u:p:P:h',["username=","password=","port=","help"])
 
#print opts,'   ' ,args
#设置默认值变量,当没有传参时就会使用默认值。
username_value="root"
port_value='22'
password_value=''    #密码不使用默认值,所以定义空。
 
#循环参数列表,输出格式为:[('-p','123'), ('-u', 'root')]     []
 
for opt,value in opts:
        if opt in("-u","--username"):
                username_value=value
                #如果有传参,则重新赋值。
        if opt in("-p","--password"):
                password_value=value
        if opt in("-P","--port"):
                port_value=value
        if opt in("-h","--help"):
                help()
 
#执行输出用户名、密码、端口的函数,如果有变量没有传值,则使用默认值。
username(username_value)
password(password_value)
port(port_value)


 

 

 


相关文章
|
5月前
|
JSON 缓存 API
深度分析淘宝API接口,用Python脚本实现
本内容深入解析淘宝开放平台 API 的接口设计与 Python 实现,涵盖接口体系、认证机制、签名规则及限流策略,并提供完整的 Python 调用框架,适用于电商系统对接与自动化运营。
|
5月前
|
JSON 算法 API
深度分析小红书城API接口,用Python脚本实现
小红书作为以UGC内容为核心的生活方式平台,其非官方API主要通过移动端抓包解析获得,涵盖内容推荐、搜索、笔记详情、用户信息和互动操作等功能。本文分析了其接口体系、认证机制及请求规范,并提供基于Python的调用框架,涉及签名生成、登录态管理与数据解析。需注意非官方接口存在稳定性与合规风险,使用时应遵守平台协议及法律法规。
|
5月前
|
JSON API 数据安全/隐私保护
【干货满满】分享微店API接口到手价,用python脚本实现
微店作为知名社交电商平台,其开放平台提供商品查询、订单管理等API接口。本文介绍如何通过微店API获取商品到手价(含优惠、券等),涵盖认证机制、Python实现及关键说明。
|
5月前
|
JSON API 数据安全/隐私保护
【干货满满】分享淘宝API接口到手价,用python脚本实现
淘宝开放平台通过API可获取商品到手价,结合商品详情与联盟接口实现优惠计算。需使用AppKey、AppSecret及会话密钥认证,调用taobao.tbk.item.info.get接口获取最终价格。代码示例展示签名生成与数据解析流程。
|
5月前
|
JSON API 数据安全/隐私保护
深度分析苏宁API接口,用Python脚本实现
苏宁易购开放平台提供覆盖商品、订单、库存、门店等零售全链路的API服务,采用RESTful架构与“AppKey+AppSecret+签名”认证机制,支持线上线下一体化业务处理。本文详解其API特性、认证流程及Python调用实现。
|
5月前
|
自然语言处理 安全 API
深度分析洋码头API接口,用Python脚本实现
洋码头是国内知名跨境电商平台,专注于海外商品直购。本文基于其API的通用设计逻辑,深入解析了认证机制、签名规则及核心接口功能,并提供了Python调用示例,适用于商品与订单管理场景。
|
5月前
|
JSON API 数据格式
深度分析易贝API接口,用Python脚本实现
本文深度解析了eBay开放平台的RESTful API接口体系,涵盖其核心功能、OAuth 2.0认证机制、请求规范及限流策略,并基于Python构建了完整的API调用框架。内容包括商品与订单管理接口的实现逻辑、认证流程、错误处理机制及实战调用示例,适用于跨境电商系统开发与多平台集成。
|
5月前
|
JSON 监控 BI
深度分析亚马逊API接口,用Python脚本实现
本内容深度解析亚马逊SP-API接口体系,涵盖商品、订单、库存等核心功能域,详解LWA认证、AWS签名及Python调用实现,适用于跨境电商系统开发与集成。
|
5月前
|
API Python 数据格式
深度分析京东API接口,用Python脚本实现
深度分析京东API接口,用Python脚本实现
|
5月前
|
JSON API 开发者
深度分析微店API接口,用Python脚本实现
微店作为知名移动端电商平台,其开放平台提供丰富的API接口,支持商品、订单、客户及营销管理。本文分析其API核心特性,并提供Python调用示例,助力开发者快速集成业务功能。

推荐镜像

更多