You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将含700个0和700个1的列表转为UTF-8文本文件时遇乱码

问题

我有一个包含700个0和700个1的列表Ytrain = [0, 0, ..., 1, 1, ...],希望将其转换为UTF-8编码的文本文件。在Google Colab中运行以下代码后,下载的output.txt文件出现了如ਰਰਰਰਰਰਰਰਰਰ਱਱਱਱਱਱਱਱਱਱਱਱这类乱码内容:

with open('output.txt', 'w', encoding='utf-8') as file:
    for item in Ytrain:
        file.write(str(item) + '\n')
解决方法

你的代码逻辑本身没有问题,乱码大概率是文件打开编码不匹配或下载过程中的潜在问题,可通过以下步骤解决:

  • 优化写入代码,明确换行符:
    写入时指定newline='\n',避免不同系统换行符差异导致的解析问题:

    with open('output.txt', 'w', encoding='utf-8', newline='\n') as file:
        for item in Ytrain:
            file.write(f"{item}\n")
    
  • 使用Colab官方方法下载文件:
    确保通过Colab的files.download方法下载,避免浏览器或第三方工具的编码干扰:

    from google.colab import files
    files.download('output.txt')
    
  • 强制以UTF-8编码打开文件:
    打开下载后的文件时,在编辑器中手动选择UTF-8编码(比如Notepad++中选「编码」→「UTF-8」,Windows记事本打开时在弹窗中选择「UTF-8」)。

  • 一次性写入所有内容(可选优化):
    将列表转换为字符串后一次性写入,减少IO操作的同时避免逐行写入的潜在问题:

    with open('output.txt', 'w', encoding='utf-8') as file:
        file.write('\n'.join(map(str, Ytrain)) + '\n')
    

内容的提问来源于stack exchange,提问作者Sunjaree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:22:15