关于python:使用-chardet-判断文件编码需要注意的坑过大的文件会导致高耗时

98次阅读

共计 245 个字符,预计需要花费 1 分钟才能阅读完成。

chardet 判断 stream:bytes 的时候,要短,然而不能太短

越短越不准,越长越慢

判断一个 15MB 的 txt 文件,须要耗时 5-20 秒

所以,我倡议,取前 256 个字节来判断,能够均衡速度和准确率

def check_encoding(stream: bytes) -> str | None:
    encoding = chardet.detect(stream[:256]).get('encoding', None)
    return encoding

这样(指取前 256 字节)大略只须要 10-30 ms 就能够判断出文件编码

正文完
 0