我有一种奇怪的行为,我不明白:
如果打开文件,我会找到字节,但每次只能找到一次:
f = open('d:\BB.ki', "rb")
f10 = re.findall( b'\x03\x00\x00\x10''(.*?)''\xF7\x00\xF0', f.read() )
print f10
['1BBBAAAABBBBAAAABBBBAAAABBBBAAAA\x00']
f = open('d:\BB.ki', "rb")
f11 = re.findall( b'\x03\x00\x00\x11''(.*?)''\xF7\x00\xF0', f.read() )
print f11
['2AAABBBBAAAABBBBAAAA\x00']
如果我试图打开文件并得到几个字节,我只得到第一个字节(f11是空的)
f = open('d:\BB.ki', "rb")
f10 = re.findall( b'\x03\x00\x00\x10''(.*?)''\xF7\x00\xF0', f.read() )
f11 = re.findall( b'\x03\x00\x00\x11''(.*?)''\xF7\x00\xF0', f.read() )
print f10,f11
['1BBBAAAABBBBAAAABBBBAAAABBBBAAAA\x00'] **[]**
我可以用线圈或类似的东西吗?你知道吗
谢谢
在调用
f.read()
之后,没有更多的字节可读取,因此对f.read()
的第二次调用将返回一个空字符串。存储f.read()的结果,而不是读取两次:您可能还希望只扫描一次数据,找到两个表达式:
如果您的文件包含字节
'\x03\x00\x00\x10\x03\x00\x00\x11_\xF7\x00\xF0'
,您提出的方法将找到两个重叠的匹配(\x03\x00\x00\x11_
和_
),而单扫描方法只找到一个匹配。你知道吗f.read()
使用整个文件。只有f10会出现。你知道吗试试这个。你知道吗
相关问题 更多 >
编程相关推荐