python 处理命令行参数--转载
sys.argv
点击(此处)折叠或打开
- #!/usr/bin/env python
- import sys
- def main(argv):
- for arg in argv:
- print arg
- if __name__ == '__main__':
- main(sys.argv)
- python PyTest.py 输出结果:PyTest.py, 原始列表为['PyTest.py']
- python PyTest.py -c 0 a:1:b 输出结果为:PyTest.py -c 0 a:1:b。说明解释器是以空格或者制表符来区分参数。
- python /root/python_scripts/PyTest.py 输出结果为: /root/python_scripts/PyTest.py。记录的是绝对路径。
- chmod +x PyTest.py;./PyTest.py 输出结果为: ./PyTest.py
- /root/python_scripts/PyTest.py 输出结果为: /root/python_scripts/PyTest.py
点击(此处)折叠或打开
- #!/usr/bin/env python
- import sys
- import getopt
- def Usage():
- print 'PyTest.py usage:'
- print '-h,--help: print help message.'
- print '-v, --version: print script version'
- print '-o, --output: input an output verb'
- print '--foo: Test option '
- print '--fre: another test option'
- def Version():
- print 'PyTest.py 1.0.0.0.1'
- def OutPut(args):
- print 'Hello, %s'%args
- def main(argv):
- try:
- opts, args = getopt.getopt(argv[1:], 'hvo:', ['output=', 'foo=', 'fre='])
- except getopt.GetoptError, err:
- print str(err)
- Usage()
- sys.exit(2)
- for o, a in opts:
- if o in ('-h', '--help'):
- Usage()
- sys.exit(1)
- elif o in ('-v', '--version'):
- Version()
- sys.exit(0)
- elif o in ('-o', '--output'):
- OutPut(a)
- sys.exit(0)
- elif o in ('--foo',):
- Foo=a
- elif o in ('--fre',):
- Fre=a
- else:
- print 'unhandled option'
- sys.exit(3)
- if __name__ == '__main__':
- main(sys.argv)
19行: 调用函数时返回两个列表, 第一个列表保存参数和值的元组集合,第二个列表保存其他值,不在参数指定的所有值。
点击(此处)折叠或打开
- from optparse import OptionParser
导入OptionParser。
点击(此处)折叠或打开
- parser = OptionParser()
生成OptionParser的一个实例
点击(此处)折叠或打开
- parser.add_option('c', 'clear', dest='clear_option', default=False, action='store_true', help = 'Clean origin configurations and databases.')
添加命令行选项
点击(此处)折叠或打开
- (options, args) = parser.parse_args(sys.argv[1:])
解析命令行
#!/usr/bin/python
# -*- coding: UTF-8 -*- import sys, getopt def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print '输入的文件为:', inputfile
print '输出的文件为:', outputfile if __name__ == "__main__":
main(sys.argv[1:])
执行以上代码,输出结果为:
$ python test.py -h
usage: test.py -i <inputfile> -o <outputfile> $ python test.py -i inputfile -o outputfile
输入的文件为: inputfile
输出的文件为: outputfile
python 处理命令行参数--转载的更多相关文章
- python处理命令行参数
直接从命令行执行py文件的时候如果带有参数,如何获取这些参数,如何解析? http://blog.chinaunix.net/uid-20786165-id-3182268.html sys.argv ...
- awk,perl,python的命令行参数处理
Python,Perl,Bash命令行参数 Part I 日常经常性的和Perl,Python,Bash打交道,但是又经常性的搞混他们之间,在命令行上的特殊性和index的区别,Python真的是人性 ...
- Python 的命令行参数处理 optparse->argparse
optaprse自2.7版开始弃用:弃用optparse模块,不会进一步开发,将继续开发argparse模块作为替代. 但是用习惯了optparse,还是很好用的撒. optparse使用起来,相比旧 ...
- Python 获得命令行参数的方法
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1 ...
- python解析命令行参数
常常需要解析命令行参数,经常忘记,好烦,总结下来吧. 1.Python 中也可以所用 sys 的 sys.argv 来获取命令行参数: sys.argv 是命令行参数列表 参数个数:len(sys.a ...
- python中命令行参数
python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 le ...
- Python 中命令行参数解析工具 docopt 安装和应用
什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制. ...
- Python的命令行参数(argparse)
参考:https://www.cnblogs.com/lindaxin/p/7975697.html 参考:https://www.cnblogs.com/dengtou/p/8413609.html ...
- python之命令行参数解析模块argparse
"""argparse模块使得写用户友好性命令行接口很容易,程序定义所需要的参数,argparse会从ays.argv中提取出这些参数.argparse模块也能自动的产生 ...
随机推荐
- visualSVN server安装使用
SVN服务推荐使用visualSVN server,安装完成之后自动设置开机启动服务,具体使用如下图:
- 置换检验(Permutation Test)学习[转载]
转自:https://www.cnblogs.com/bnuvincent/p/6813785.html http://www.bioinfo-scrounger.com/archives/564 1 ...
- php中&运算符的理解与使用
php的引用(就是在变量或者函数.对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 例一: < ...
- soapUI-Properties
1.1.1 Properties 1.1.1.1 概述 - Properties Option Description Toolbar 属性TestStep工具栏 Properties Li ...
- Android View事件分发源码分析
引言 上一篇文章我们介绍了View的事件分发机制,今天我们从源码的角度来学习下事件分发机制. Activity对点击事件的分发过程 事件最先传递给当前Activity,由Activity的dispat ...
- Problem B. Full Binary Tree
题目 链接:http://code.google.com/codejam/contest/2984486/dashboard#s=p1 googlde code jam 2014 Round1A 解题 ...
- ExtJs中XTemplate使用(转)
转自http://www.studyofnet.com/news/408.html 本文导读:XTemplate是Ext.Template扩展的新类,它支持高级功能的模板类,如自动数组输出.条件判断. ...
- VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类)
上一节中鸡啄米讲了菜单及CMenu类的使用,这一节讲与菜单有密切联系的工具栏. 工具栏简介 工具栏一般位于主框架窗口的上部,菜单栏的下方,由一些带图片的按钮组成.当用户用鼠标单击工具栏上某个按钮时,程 ...
- WebStorm使用快速入门
WebStorm建立在开源IntelliJ平台之上,JetBrains已经开发和完善了超过15年.其提供了统一的UI,可与许多流行的版本控制系统配合使用,确保在git,GitHub,SVN,Mercu ...
- MySQL从删库到跑路_高级(一)——数据完整性
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.数据完整性简介 1.数据完整性简介 数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确 ...