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采集百度百科的方法
Jun 05 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
Python实现简单http服务器
Apr 12 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
Python实现的括号匹配判断功能示例
Aug 25 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
PyTorch device与cuda.device用法
Apr 03 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遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
微信小程序如何实现全局重新加载
2019/06/05 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
通过Python实现自动填写调查问卷
2017/09/06 Python
python实现文件的备份流程详解
2019/06/18 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
Python 项目转化为so文件实例
2019/12/23 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
python跨文件使用全局变量的实现
2020/11/17 Python
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
自我评价200字分享
2013/12/17 职场文书
运动会通讯稿400字
2014/01/28 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python