我有一个包含一些NULL字符的大文件。我想用Python读取这个文件,就好像这些NULL不存在一样。我可以将整个文件读入内存中的字符串并执行str.replace
,但这样效率很低,特别是考虑到它的总大小(可以是多个GB)。
是否有一种有效的方法可以在Python中读取文件,同时动态删除某些字符或将其替换为其他字符?
答案 0 :(得分:1)
以二进制模式打开文件,并以适当大小的块读取。从每个块中删除不需要的字符,并将结果字节写入另一个打开以供写入的文件。
这将适用于\x00
个字节,但如果它是一个带有utf-8编码的文本文件,肯定会失败,其中一个字母可能需要几个字节。
这可以使用codecs.open
来解决。返回的类文件对象允许您read
给定编码中的近似字节数。