在不知道编码的情况下使用Python读取文件

Sam*_*ack 5 python encoding readfile python-3.x

我想从文件夹(带有os.walk)读取所有文件并将它们转换为一种编码(UTF-8)。问题是这些文件没有相同的编码。它们可以是 UTF-8、带 BOM 的 UTF-8、UTF-16。

有没有办法在不知道这些文件的编码的情况下读取这些文件?

小智 6

您可以以二进制模式读取这些文件。此外,chardet 库可以帮助您检测字符编码。使用 chardet,您可以检测文件的编码并对获得的数据进行解码。尽管这个模块有局限性。

举个例子:

from chardet import detect

with open('your_file.txt', 'rb') as ef:
    detect(ef.read())
Run Code Online (Sandbox Code Playgroud)