Python 获得命令行参数的方法(推荐)


Posted in Python onJanuary 24, 2018

本篇将介绍python中sys, getopt模块处理命令行参数

如果想对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
python test.py -i inputfile -o outputfile

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

上面例子中的ops为:[('h',''),('-i','inputfile'),('-o','outputfile')]

  args为不属于格式信息的剩余的命令行参数。

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

长选项格式举例:

--version
--file=error.txt

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

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

总结

以上所述是小编给大家介绍的Python 获得命令行参数的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python的subprocess模块总结
Nov 07 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 Python
Python是什么 Python的用处
May 26 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
Python办公自动化之Excel(中)
May 24 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
Python实现的rsa加密算法详解
Jan 24 #Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 #Python
python做量化投资系列之比特币初始配置
Jan 23 #Python
python在非root权限下的安装方法
Jan 23 #Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 #Python
Python 查看文件的读写权限方法
Jan 23 #Python
Python3 中文文件读写方法
Jan 23 #Python
You might like
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
JS中递归函数
2016/06/17 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
Python完全新手教程
2007/02/08 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
实例讲解Python爬取网页数据
2018/07/08 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
python中列表的含义及用法
2020/05/26 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
趣味比赛活动方案
2014/02/15 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
2014年派出所工作总结
2014/11/21 职场文书
三年级学生评语大全
2014/12/26 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript