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模块也能自动的产生 ...
随机推荐
- python 根据路径导入模块
Import python module NOT on path http://stackoverflow.com/questions/10161568/import-python-module-no ...
- 深入理解python之一——python3对象的一些特性
文章使用markdown写的,编辑的时候行间距还可以,显示的时候行间距好小,我也没办法. 首先,需要明白的是python是一种解释性语言标准,他可以由c.java或者其他语言来实现.在python的标 ...
- X-Forwarded-For 负载均衡 7 层 HTTP 模式获取来访客户端真实 IP 的方法(IIS/Apache/Nginx/Tomcat)
https://help.aliyun.com/knowledge_detail/13051859.html?pos=1 1.IIS 6 配置方案2.IIS 7 配置方案3.Apache 配置方案4. ...
- testng入门教程13同文件数据驱动
下面是@DataProvider有name和没有name时 有name的时候可以引用name 即:@DataProvider(name="testData")----------& ...
- Docker深入浅出2
Docker系统架构 Docker使用客户端-服务端(c/s)架构模式,使用远程api来管理和创建Docker容器. docker容器通过Docker镜像来创建. 容器与镜像的关系类似于面向对象编程中 ...
- memcache图形管理工具
http://www.junopen.com/memadmin/其中有使用截图和介绍 https://github.com/junstor/memadmin 下载地址
- Webform和MVC,为什么MVC更好一些?(转)
转自http://www.admin10000.com/document/5277.html 前言 如果你看了最近微软的议程,你会发现他们现在的焦点除了MVC,还是MVC.问题在于为什么微软如此热衷于 ...
- C++中的访问权限
C++中类的成员的权限: private:只能由该类的成员函数,友元函数访问,不能被该类的对象访问. protected:除了private外还能被子类的函数访问,同样不能被该类的对象访问. publ ...
- c++练习-快速排序
这个例子将长度为r的数列a从按照从小到大作排列 快速排序的思想简单说来就是 在a中依次先选定一个数key,将这个数依次与a中的其他数做对比,如果比key小则放到key前面,如果比key大就放到key后 ...
- MFC用串行化实现文档存储和读取功能
在面向对象的程序设计中,一般都是用二进制文件来保存文档资料.在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件:利用串行化存取文件.其中用CFil ...