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实现自动添加脚本头信息的示例代码
Sep 02 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
python字符串与url编码的转换实例
May 10 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
Python之时间和日期使用小结
Feb 14 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
基于Python实现简单学生管理系统
Jul 24 Python
python3 删除所有自定义变量的操作
Apr 08 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动态图像的创建
2006/10/09 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
jQuery 加上最后自己的验证
2009/11/04 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
跟老齐学Python之用Python计算
2014/09/12 Python
python和shell获取文本内容的方法
2018/06/05 Python
Python中GIL的使用详解
2018/10/03 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
如何在sublime编辑器中安装python
2020/05/20 Python
python RSA加密的示例
2020/12/09 Python
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
旅游市场营销方案
2014/03/09 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
企业员工薪酬方案
2014/06/04 职场文书
股份合作协议书
2014/09/10 职场文书
安全教育观后感
2015/06/17 职场文书
Mysql事务索引知识汇总
2022/03/17 MySQL
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫