Python每日小结(五)

来源:互联网 发布:python 开发GIS 编辑:程序博客网 时间:2024/06/06 03:30

       1.random.seed()

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

      

       2.Python 命令行读取参数

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

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

import sysprint "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 argparsedef 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 argparsedef 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命令行参数解析。




原创粉丝点击