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程序设计入门(3)数组的使用
Jun 16 Python
Python之日期与时间处理模块(date和datetime)
Feb 16 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
详解python深浅拷贝区别
Jun 24 Python
matplotlib 三维图表绘制方法简介
Sep 20 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
Python中常见的导入方式总结
May 06 Python
Python中Selenium对Cookie的操作方法
Jul 09 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Atom的python插件和常用插件说明
2018/07/08 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python实现桌面气泡提示功能
2019/07/29 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
11月升旗仪式讲话稿
2014/02/15 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
老干部工作汇报材料
2014/10/28 职场文书
文明单位汇报材料
2014/12/24 职场文书
开展警示教育活动总结
2015/05/09 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
php 原生分页
2021/04/01 PHP
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
Mysql开启外网访问
2022/05/15 MySQL