python实现读取命令行参数的方法


Posted in Python onMay 22, 2015

本文实例讲述了python读取命令行参数的方法。分享给大家供大家参考。具体分析如下:

如果想对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:

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

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

长选项格式举例:

--version
--file=error.txt

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

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

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现的几个常用排序算法实例
Jun 16 Python
python实现自动登录人人网并访问最近来访者实例
Sep 26 Python
python实现手机通讯录搜索功能
Feb 22 Python
python批量修改图片大小的方法
Jul 24 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
python模糊图片过滤的方法
Dec 14 Python
对python模块中多个类的用法详解
Jan 10 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
Python json读写方式和字典相互转化
Apr 18 Python
Python中logger日志模块详解
Aug 04 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
Python中返回字典键的值的values()方法使用
May 22 #Python
python复制文件的方法实例详解
May 22 #Python
在Python中操作字典之update()方法的使用
May 22 #Python
python判断图片宽度和高度后删除图片的方法
May 22 #Python
在Python中操作字典之setdefault()方法的使用
May 21 #Python
在Python中用keys()方法返回字典键的教程
May 21 #Python
Python中使用items()方法返回字典元素对的教程
May 21 #Python
You might like
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php for 循环使用的简单实例
2016/06/02 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
python的变量与赋值详细分析
2017/11/08 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
python可视化text()函数使用详解
2020/02/11 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
汽车专业毕业生自荐信
2013/11/03 职场文书
物业客服专员岗位职责
2013/11/30 职场文书
暑期研修感言
2014/02/17 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python