python写的帧分割函数
前一阵在写一个自动测试程序时需要按照特定字符对收到的数据进行帧的分割,原有要求是有每帧前后各有一个同样的特殊字符,当时估计下时间还够,想将其扩展为一个较为通用功能,即每帧数据前有各有一个特殊字符表示开始和结束,但前后这两字符可以不同,也可以只有一个(在头在尾分割效果不同),同时学习了一阵python,感觉其处理这类问题还比较合适,完成了以下初步的代码,此段代码性能上还需优化:
def frame_read(fd,head,tail,timeout):
'return -- donot recv data return None,recv data but wrong format return [],else return data in tupe format, \
frame_len -- each frame cmd len,'
if fd is None or len <= 0:
print 'fd is None or len <= 0,'
return None
fd_type = check_obj_type(fd)
# print 'connect obj type is %s' % fd_type
if fd_type == 'invalid_type':
return None
cur_time = time.time()
data = ''
lines = []
received = False
head_found = False
head_len = len(head)
tail_len = len(tail)
temp = None
frame_len = 512
hex_str = ''
while 1:
if is_timeout(cur_time,timeout):
print 'wait data timeout.'
if not received:
return None
else:
 
相关文档:
>>> import string
>>> s='adbecf'
>>>
tt=string.maketrans("abc","ABC")
>>> s.translate(tt,"")
'AdBeCf'
>>>
s.translate(tt,"")
后面的那个空字符创就是你要删除的字符,比如要删除换行就是s.translate(tt,"\n&q ......
#关于回调功能的测试
#Functor是这种回调功能的关键对象
class Functor:
"""Simple functor class."""
def __init__( self, fn, *args ):
self.fn = fn
  ......
一些综合的信息
Python
里,缩进很重要。没有尖括号不要紧,
Python
根据缩进来分割语句块。
参数不需要定义,可以直接使用。
Help(var)
查看
var
的帮助。
Var
可以为任何东西,函数,模块,类。
Python
中的字符串是不可变的。
Pass
表示空语句块。
# 注释
String
r‘I&rsquo ......
项目需要,刚刚接触python。
今天看书看到a>b==c ,a,b,c为integer
在C/C++/C#中,a>b为boolean,不可与integer比较相等
但python a>b==c等效于((a>b)&&(b==c))
在python中的写法是a>b and b==c ......
今晚试了一下Python自带的单元测试,主要是参考了Python单元测试框架
的有关资料,折腾了一个小时左右,总算在Eric 4通过的几个简单的单元测试。在这里将所得的相关知识记录下来,方便将来查询。
python自带的单元测试模块是unittest,从2.1以后为标准库的一部分
1 ......