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

Mac OS 10.13下Python读取.tsv遇编码错误及.tsv.7z读取问题求助

解决TSV文件读取的UnicodeDecodeError与7Z压缩文件读取问题

一、解决UnicodeDecodeError错误

从报错信息看,你的TSV文件里包含0xbc这个字节,它不属于UTF-8编码的有效字节,所以指定encoding='utf-8'会解码失败。这里有几个可行的解决方案:

  • 尝试兼容编码临时读取:比如使用latin-1编码,它能映射所有字节不会报错,之后你可以再根据需要转换编码:

    train = pd.read_csv('/Users/sherrymukim/Documents/mercari/train.tsv', sep='\t', encoding='latin-1')
    

    另外也可以试试cp1252编码,这是Windows系统常用的编码,很多非UTF-8的文本文件会用它。

  • 自动检测文件编码:用chardet库来检测文件的真实编码,这样能精准指定编码:
    先安装chardet(如果没装的话):

    pip install chardet
    

    然后运行以下代码检测并读取:

    import chardet
    import pandas as pd
    
    with open('/Users/sherrymukim/Documents/mercari/train.tsv', 'rb') as f:
        encoding_result = chardet.detect(f.read())
    
    # 使用检测到的编码读取文件
    train = pd.read_csv('/Users/sherrymukim/Documents/mercari/train.tsv', sep='\t', encoding=encoding_result['encoding'])
    

二、读取.tsv.7z格式文件

Pandas本身不支持直接读取7Z压缩格式的文件,你可以通过以下两种方式解决:

  • 手动解压后读取:
    在Mac上,你可以直接双击.7z文件用系统自带的归档工具解压;如果系统没有自带支持,也可以通过Homebrew安装p7zip工具:

    brew install p7zip
    

    然后在终端执行解压命令:

    7z x /Users/sherrymukim/Documents/mercari/train.tsv.7z
    

    解压后就可以用之前的方法读取TSV文件了。

  • 用Python库直接读取压缩文件:
    使用py7zr库可以在Python中直接读取7Z压缩包内的文件,无需手动解压:
    先安装py7zr:

    pip install py7zr
    

    然后用以下代码读取:

    import py7zr
    import pandas as pd
    
    with py7zr.SevenZipFile('/Users/sherrymukim/Documents/mercari/train.tsv.7z', mode='r') as zip_file:
        # 打开压缩包内的TSV文件
        with zip_file.open('train.tsv') as tsv_file:
            # 这里记得替换为你之前找到的正确编码
            train = pd.read_csv(tsv_file, sep='\t', encoding='latin-1')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:43:36