python实现读取命令行参数的方法


Posted in Python onMay 22, 2015

本文实例讲述了python读取命令行参数的方法。分享给大家供大家参考。具体分析如下:

如果想对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:

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为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。

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

长选项格式举例:

--version
--file=error.txt

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

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

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
Python3.x中自定义比较函数
Apr 24 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
详解Python中的相对导入和绝对导入
Jan 06 Python
python基础教程之匿名函数lambda
Jan 17 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
详解Python 函数参数的拆解
Sep 02 Python
Python中返回字典键的值的values()方法使用
May 22 #Python
python复制文件的方法实例详解
May 22 #Python
在Python中操作字典之update()方法的使用
May 22 #Python
python判断图片宽度和高度后删除图片的方法
May 22 #Python
在Python中操作字典之setdefault()方法的使用
May 21 #Python
在Python中用keys()方法返回字典键的教程
May 21 #Python
Python中使用items()方法返回字典元素对的教程
May 21 #Python
You might like
详解PHP实现执行定时任务
2015/12/21 PHP
提交表单时执行func方法实现代码
2013/03/17 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
python中urllib模块用法实例详解
2014/11/19 Python
python中引用与复制用法实例分析
2015/06/04 Python
python 排序算法总结及实例详解
2016/09/28 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
人事档案接收函
2014/01/12 职场文书
酒店总经理欢迎词
2014/01/15 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
五一口号
2014/06/19 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
社区文明倡议书
2015/04/28 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python