删除或替换指定字符时读取文件?

时间:2017-10-13 18:39:36

标签: python

我有一个包含一些NULL字符的大文件。我想用Python读取这个文件,就好像这些NULL不存在一样。我可以将整个文件读入内存中的字符串并执行str.replace,但这样效率很低,特别是考虑到它的总大小(可以是多个GB)。

是否有一种有效的方法可以在Python中读取文件,同时动态删除某些字符或将其替换为其他字符?

1 个答案:

答案 0 :(得分:1)

以二进制模式打开文件,并以适当大小的块读取。从每个块中删除不需要的字符,并将结果字节写入另一个打开以供写入的文件。

这将适用于\x00个字节,但如果它是一个带有utf-8编码的文本文件,肯定会失败,其中一个字母可能需要几个字节。

这可以使用codecs.open来解决。返回的类文件对象允许您read给定编码中的近似字节数。