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

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 就能够判断出文件编码

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理