Python每日小结(五)之 命令行参数读取

       1.random.seed()

        要每次产生随机数相同就要设置种子,相同种子数的Random对象,相同次数生成的随机数字是完全相同的,比如:

      

       2.Python 命令行读取参数

        一般我们处理命令行参数有两种方法,一是使用sys模块,一是使用argparse模块。

        首先我们来介绍一下sys模块:

import sys
print "The python script we run is %s" %(sys.argv[0])
print "Input argument is %s" % (sys.argv[1])
        运行结果:

       

        一般如果我们的命令行参数比较简单,那么可以使用sys模块,但是如果需要解析的命令行参数和选项比较复杂,则可以使用argparse模块。

        argparse是python用于解析命令行参数和选项的标准模块,它用于解析命令行参数,例如python parse Test.py input.txt output.txt --user=name --port=8080。

        使用步骤:

        1)import argparse

        2)parser=argparse.ArgumentParser()

        3)parser.add_argument()

        4)parser.parse_args()

        通俗地讲,首先导入模块,然后创建一个解析对象,接着往该对象中添加我们要关注的命令行参数和选项,每一个add_argument方法对应一个我们要关注的参数或选项;最后调用parse_args()方法进行解析,解析成功后即可使用。

        首先介绍一下ArgumentParser方法,该方法的函数签名如下:

        ArgumentParser(prog=None, usage=None,description=None, epilog=None, parents=[],formatter_class=argparse.HelpFormatter, prefix_chars='-',fromfile_prefix_chars=None, argument_default=None,conflict_handler='error', add_help=True)

        下面我们举个例子:

import argparse

def main(args):
	if args['verbose']==True:
		print "It's true!"

if __name__ == "__main__":
	parser=argparse.ArgumentParser()
	parser.add_argument('--verbose','-v',action='store_true',help='verbose mode')
	args=vars(parser.parse_args())
	main(args)
        运行结果:

       

        其中我们用到的vars将在后面进行介绍。我们先来对add_argument()的参数进行梳理:

        1)'--verbose','-v':参数格式;

        2)action:意思是当读取的参数中出现--verbose/-v的时候,将参数字典的verbose键对应的值设置为True;

        3)help用于描述--verbose参数的用途和意义。

        或者我们可以不用vars,比如:

import argparse

def main(args):
    if args.verbose==True:
        print "It's true!"
    else:
        print "It's false!"

if __name__ == "__main__":
    parser=argparse.ArgumentParser()
    parser.add_argument('--verbose','-v',action='store_true',help='verbose mode')
    args=parser.parse_args()
    main(args)
        运行结果如下:

       

        我们可以试着打印args的值以及类型:

       

        也就是说,args本身是argparse.Namespace的类型,我们可以通过args.verbose来获取其中的参数,而使用vars()内置函数则将该类型转换为了字典类型,所以我们使用args['verbose']来取值。

        --help标签在使用argparse模块时将会自动创建,因此一般情况下不需要我们主动定义帮助信息。

        本文就介绍到这里咯,具体请参考:Python命令行参数解析




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值