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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python使用sorted排序的方法小结
Jul 28 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
python中文编码与json中文输出问题详解
Aug 24 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
Python控制台实现交互式环境执行
Jun 09 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实现图象锐化代码
2007/06/14 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
浅谈javascript 函数属性和方法
2015/01/21 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
Python正则表达式匹配中文用法示例
2017/01/17 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
大堂副理的岗位职责范文
2014/02/17 职场文书
物理教学随笔感言
2014/02/22 职场文书
高校教师岗位职责
2014/03/18 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
三下乡个人总结
2015/03/04 职场文书
2016公司年会主持词
2015/07/01 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python