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 元类使用说明
Dec 18 Python
Python使用wxPython实现计算器
Jan 30 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
Python文件路径名的操作方法
Oct 30 Python
Python OpenCV读取显示视频的方法示例
Feb 20 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
Django 项目布局方法(值得推荐)
Mar 22 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php正则表达式(regar expression)
2011/09/10 PHP
yii分页组件用法实例分析
2015/12/28 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
js原型链原理看图说明
2012/07/07 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
全面理解闭包机制
2016/07/11 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
python图片验证码生成代码
2016/07/02 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python获取本机所有IP地址的方法
2018/12/26 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
自动化专业本科毕业生求职信
2013/10/20 职场文书
《石榴》教学反思
2014/03/02 职场文书
怎样填写就业意向
2014/04/02 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
关于环保的广播稿
2015/12/17 职场文书
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL