读入一个巨大的二进制文件大小约为1.3GB,并改变某些位,然后写回一个单独的文件(不能修改原始文件)。
方法
当我在它被存储在十六进制格式是不可改变的,因为我使用python编码的大规模串二进制文件中读取。
我的算法遍历整个文件并将所有需要修改的字符串索引存储在列表中。问题在于字符串中的所有索引都需要修改为相同的值。由于不可变的性质,我无法做到这一点。我无法将其转换为字符列表,因为这会炸毁我的记忆限制并花费很多时间。可行的做法是将其存储在单独的字符串中,但由于不可变的性质,我必须制作大量的字符串对象并继续与它们连接。
我使用https://waymoot.org/home/python_string/的一些想法,但它并没有给我一个好的表现。任何想法,目标是复制一个现有的超长字符串到另一个除了由索引列表中的值确定的某些占位符?
替换件与原件尺寸相同吗?我可以查找文件位置并在磁盘上写入。 –
你说“写回来”,但在我的回答评论说“约束是不改变原始文件”。这是一个矛盾。 –
编辑问题 - 抱歉模棱两可 –