Python 获得命令行参数的方法(推荐)


Posted in Python onJanuary 24, 2018

本篇将介绍python中sys, getopt模块处理命令行参数

如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?

需要模块:sys

参数个数:len(sys.argv)

脚本名:    sys.argv[0]
参数1:     sys.argv[1]
参数2:     sys.argv[2]

test.py

import sys
print "脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
 print "参数", i, sys.argv[i]
>>>python test.py hello world

脚本名:test.py

参数 1 hello
参数 2 world

python中使用命令行选项:

例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。

要求该脚本满足以下条件:

1.通过-i -o选项来区别参数是输入文件还是输出文件.

>>> python convert.py -i inputfile -o outputfile

2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息

>>> python convert.py -h

getopt函数原形:

getopt.getopt(args, options[, long_options])
convert.py
python test.py -i inputfile -o outputfile

import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
input_file=""
output_file=""
for op, value in opts:
 if op == "-i":
  input_file = value
 elif op == "-o":
  output_file = value
 elif op == "-h":
  usage()
  sys.exit()

代码解释:

a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。

b) "hi:o:": 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。

所以"hi:o:"就表示"h"是一个开关选项;

  "i:"和"o:"则表示后面应该带一个参数。

c) 调用getopt函数。函数返回两个列表:opts和args。

  opts为分析出的格式信息。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。

上面例子中的ops为:[('h',''),('-i','inputfile'),('-o','outputfile')]

  args为不属于格式信息的剩余的命令行参数。

getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)

长选项格式举例:

--version
--file=error.txt

让一个脚本同时支持短选项和长选项

getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])

总结

以上所述是小编给大家介绍的Python 获得命令行参数的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
从源码解析Python的Flask框架中request对象的用法
Jun 02 Python
matplotlib设置legend图例代码示例
Dec 19 Python
python http接口自动化脚本详解
Jan 02 Python
浅谈python正则的常用方法 覆盖范围70%以上
Mar 14 Python
flask框架视图函数用法示例
Jul 19 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
anaconda如何查看并管理python环境
Jul 05 Python
python实现扫雷游戏
Mar 03 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
python开发实时可视化仪表盘的示例
May 07 Python
Python实现的rsa加密算法详解
Jan 24 #Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 #Python
python做量化投资系列之比特币初始配置
Jan 23 #Python
python在非root权限下的安装方法
Jan 23 #Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 #Python
Python 查看文件的读写权限方法
Jan 23 #Python
Python3 中文文件读写方法
Jan 23 #Python
You might like
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
Python中删除文件的程序代码
2011/03/13 Python
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
python实现控制台打印的方法
2019/01/12 Python
python实现可变变量名方法详解
2019/07/01 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
python创建文本文件的简单方法
2020/08/30 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
污水厂厂长岗位职责
2014/01/04 职场文书
积极向上的团队口号
2014/06/06 职场文书
本科生自荐信
2014/06/18 职场文书
建筑管理专业求职信
2014/07/28 职场文书
工作说明书格式
2014/07/29 职场文书
最新离婚协议书范本
2014/08/19 职场文书
《比的意义》教学反思
2016/02/18 职场文书
Golang日志包的使用
2022/04/20 Golang
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python