内存映射文件+bytearray正则表达式我需要担心UTF16和UTF8吗?

2024-06-06 19:00:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我用正则表达式来搜索映射到mmap的文件

import mmap
import re

MyRe= re.compile(br"^# Make data base, printed on", flags=re.MULTILINE)

fp = open('C:/Users/mureadr/Desktop/A/Make421-ImpTarget-4.err', 'r')

mm = mmap.mmap(fp.fileno(), 0, access=mmap.ACCESS_READ)

matches = MyRe.search(mm)

fp.close()

mm.close()

mmap只有works with bytearray这就是为什么我在re.compile命令中有b修饰符;r修饰符是to keep regex expressions sane.

但是如果文件是用UTF-16编码的,会发生什么呢?你知道吗

我是否需要有一个不同于b的修饰符来向Python指示每个字符都应该用它的UTF-16等价物来表示?你知道吗

或者它会自动工作的任何UTF编码?你知道吗


Tags: 文件brimportre编码closedatamake