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使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
详解Python3操作Mongodb简明易懂教程
May 25 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
使用pytorch实现可视化中间层的结果
Dec 30 Python
python自动点赞功能的实现思路
Feb 26 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
Python远程方法调用实现过程解析
Jul 28 Python
python与idea的集成的实现
Nov 20 Python
使用tkinter实现三子棋游戏
Feb 25 Python
Python实现视频中添加音频工具详解
Dec 06 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中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
初步理解Python进程的信号通讯
2015/04/09 Python
Python3字符串学习教程
2015/08/20 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
基于python3生成标签云代码解析
2020/02/18 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
工艺工程师工作职责
2013/11/23 职场文书
七年级生物教学反思
2014/01/30 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python