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中cPickle用法例子分享
Jan 03 Python
详解Python中的strftime()方法的使用
May 22 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python微信公众号开发简单流程实现
Mar 09 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
了解一下python内建模块collections
Sep 07 Python
python3字符串输出常见面试题总结
Dec 01 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+redis实现添加处理投票的方法
2015/11/14 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
今天,小程序正式支持 SVG
2019/04/20 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
Python实现list反转实例汇总
2014/11/11 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
控制工程专业个人求职信
2013/09/25 职场文书
经典团队口号
2014/06/06 职场文书
2014年城管工作总结
2014/11/20 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
小学见习报告
2015/06/23 职场文书
高三化学教学反思
2016/02/22 职场文书
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS