gpt4 book ai didi

python - 根据字符串分割二进制文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:56 26 4
gpt4 key购买 nike

我有 170 个 1GB 二进制文件,每次我找到特定的 ASCII 字符串时我都想将它们拆分。其中一些字符串也有换行符。

csplit 似乎是完成此任务的完美工具,但它似乎不适用于二进制文件。

问题

如果我将搜索字符串转换为十六进制/二进制,是否会使问题更容易解决,所以它是二进制数据中的二分搜索?

如果没有,如何分割基于 ASCII 字符串的二进制文件,其中一些文件带有换行符?

最佳答案

二进制文件没有什么特别之处,只是它们通常包含文本文件中不会出现的数据,而且打印时看起来不太好。它们仍然是必须理解的八位位组序列,大多数优秀的语言都可以让您做到这一点。

举个例子可能会有所帮助。

您没有描述要用作分隔符的字符串,也没有说明读取后要对每个 block 执行什么操作,因此这里有一个 Perl 程序,它以特定 ASCII 字符串 结尾的 block 读取 1GB 原始文件,并将它们一次一个地写到一个新文件中。所以它相当笨拙地复制文件。

use strict;
use warnings;

open my $fh, '<:raw', '1GBfile' or die $!;
local $/ = 'specific ASCII string';

open my $out_fh, '>:raw', 'new1GBfile' or die $!;
select $out_fh;

print while <$fh>;

close $out_fh or die $!;

根据您对文件中数据的处理方式,您可能会发现 File::Map有用

关于python - 根据字符串分割二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29217372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com