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模块也能自动的产生 ...
随机推荐
- Scala系统学习(五):Scala访问修辞符
本章将介绍Scala访问修饰符.包,类或对象的成员可以使用私有(private)和受保护(protected)的访问修饰符进行标注,如果不使用这两个关键字的其中一个,那么访问将被视为公开(public ...
- 使用webpy创建一个简单的restful风格的webservice应用
下载:wget http://webpy.org/static/web.py-0.38.tar.gz解压并进入web.py-0.38文件夹安装:easy_install web.py 这是一个如何使用 ...
- python接口自动化 -参数关联(一)
原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...
- 转载 vsftpd安装
http://blog.csdn.net/shutfuckingup/article/details/8250290 1:安装vsftpd yum install vsftpd 2:关闭防火墙 ...
- linux 统计wc
说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选项含义如下: - c 统计字节 ...
- cygwin本地.bashrc配置
echo -e "====================================================================================== ...
- Java(20~24)
1.Collection中的集合称为单列集合,Map中的集合称为双列集合(键值对集合). 2.Map常用方法:map.put() map.get() map.remove() map.ke ...
- 安装rocketmq-console
一.alibaba版本 使用rocketmq命令查看集群状态,查看topic信息时比较麻烦,而且不直观,这个时候可以使用一些web页面来管理rocketmq. 以前曾使用过一个老版本的工具,适用于al ...
- Linux服务器配置---tftpserver
安装tftp-server 1.安装tftp-server [root@localhost weijie]# yum install -y tftp-server Loaded plugins: fa ...
- linux基础命令---whereis
whereis 查找命令的位置,包括执行文件.源代码.手册文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 ...