maltrail结构
整个系统分为sensor.py和server.py,首先分析sensor.py
在setting.py中定义了一些常量,包括版本号,项目名称,服务端端口号,trails_file等
python 语法问题
- 函数参数传入时,list变量前面增加*,表示解包,每个list的元素作为参数传入函数中。
- enumerate 对象,能将序列变成[(0,x1),(1,x2)…],每个元素变为一个元组,元组第一个元素时序号,序号的起始序号能够通过enumerate对象的构造函数指定,x1、x2是原序列中的元素。
- zip(iterate),将两个可迭代对象,压缩为[(x1,y1),(x2,y2),(x3,y3)…],x、y分别是两个可迭代对象。
- re.compile(pattern,flags)返回一个正则表达对象,这个对象的行为可通过flag改变
- sys.dont_write_bytecode = True 这个True则python文件在import时不会写成pyc
- os.path.dirname(path)返回path路径的目录路径,os.path.join(path, *paths)将路径连接起来
- 判断字符串为空,if not a_str:
- any(iterable) 如果iterable里任意一个元素不为空就返回True
- isinstance(getattr(options, option), (basestring, bool)) 这个isinstance判断
- xrange与range的差别是xrange产生一个生成器,这样不需要一开始就开辟内存空间,除非需要l