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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
python文件名和文件路径操作实例
Sep 29 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
python用户管理系统
Mar 13 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
python 产生token及token验证的方法
Dec 26 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
python中sort和sorted排序的实例方法
Aug 26 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python爬虫scrapy基本使用超详细教程
Feb 20 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 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读取RSS feed的代码
2008/08/01 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
点图片上一页下一页翻页效果
2008/07/09 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
vue生命周期实例小结
2018/08/15 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python mysql断开重连的实现方法
2019/07/26 Python
python openssl模块安装及用法
2020/12/06 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
经典促销广告词大全
2014/03/19 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
员工安全责任协议书
2016/03/22 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers