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