小编Jod*_*dyK的帖子

Python:正则表达式跨文件块边界匹配

巨大的纯文本数据文件

我使用python读取了一个巨大的文件块.然后我在那个块上应用正则表达式.基于标识符标记,我想提取相应的值.由于块大小,块边界处缺少数据.

要求:

  • 必须以块的形式读取该文件.
  • 块大小必须小于或等于1 GiB.


Python代码示例

identifier_pattern = re.compile(r'Identifier: (.*?)\n')
with open('huge_file', 'r') as f:
    data_chunk = f.read(1024*1024*1024)
    m = re.findall(identifier_pattern, data_chunk)
Run Code Online (Sandbox Code Playgroud)


块数据示例

好:与值数相等的标签数

标识符:值
标识符:值
标识符:值
标识符:值


由于块大小,您会遇到如下所列的不同边界问题.第三个标识符返回一个不完整的值,"v"而不是"value".下一个块包含"alue".这会导致解析后丢失数据.

错误:标识符值不完整

标识符:值
标识符:值
标识符:v


你如何解决像这样的块边界问题?

python regex boundary

6
推荐指数
1
解决办法
550
查看次数

标签 统计

boundary ×1

python ×1

regex ×1