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命令行参数解析。
- Python每日小结(五)
- Python每日小结(一)
- Python每日小结(二)
- Python每日小结(三)
- Python每日小结(四)
- Python每日小结(六)
- Python每日小结(七)
- Python每日小结(八)
- Python每日小结(九)
- Python每日小结(十)
- Python每日小结(十一)
- 每日一题(五)
- 每日五题(随记)
- 每日五题(struts2)
- 每日五题(线程)
- Linux每日学习(五)
- 每日五问(1)
- 每日十道面试题(五)
- 几条关于java程序设计风格的指导性建议
- 其他题目---一种字符串和数字的对应关系
- 使用idea 提代码
- B.5.4.3 NULL值问题
- Spring Boot Actuator 常用端点及描述
- Python每日小结(五)
- python文件地址问题
- Ubuntu16.04下面spyder切换虚拟环境下面的python版本
- 在窗体中新建控件的方法
- github远程仓库上传项目二
- spark学习02之app流量统计并排序(JAVA)
- SQL的check不能用于mysql时的另一种处理
- Kotlin类和对象 (十三)--- 委托属性(Delegated Properties)
- ROS学习(一)ROS安装与创建工作空间