使用不同编码的文件时如何避免UnicodeDecodeError?

时间:2017-05-01 17:10:52

标签: python encoding

我必须将包含数据集的ASCII文件合并为一个整体文件。我正在使用标准程序逐行合并:

for in_filename in os.listdir(w_dir):
    if in_filename.endswith(".scd"):
        write_message("\nAdding '" + in_filename + "' to '" + out_filename + "' ... ", "black")
        with open(out_filename, 'a', encoding="utf-8") as f_out, fileinput.input(in_filename) as f_in:
            for scd_count, line in enumerate(f_in):
                f_out.write(line)

问题是,我要合并的ASCII文件编码方式不同。当我用能够自动识别编码的文本编辑器打开它时,我看到utf-8,ISO 8859-15,ISO 8859-1以及谁知道还有什么。所以我的程序迟早会遇到UnicodeDecodeError,无论我明确告诉Python使用什么样的编码。有没有办法避免这个问题?

1 个答案:

答案 0 :(得分:1)

chardet库可用于猜测文件编码。