在处理不同编码的文件时,如何避免UnicodeDecodeError?

2024-09-28 22:23:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将包含数据集的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、iso8859-15、iso8859-1,谁知道还有什么。所以不管我明确告诉Python使用哪种编码,我的程序迟早会遇到UnicodeDecodeError。有没有办法避免这个问题?你知道吗


Tags: 文件数据in编码for标准asline