.tar.Z文件改后缀为.tar后无法读取的问题求助
解决.tar.Z文件读取失败问题
问题根源
.tar.Z是先通过compress工具压缩,再打包成tar的双层压缩格式,直接修改扩展名成.tar不会改变文件的压缩结构,因此无法用pd.read_csv直接读取。
正确处理步骤(Colab环境)
解压.Z压缩层
上传文件后,先用uncompress命令处理.tar.Z文件,得到纯tar包:!uncompress diabetes-data.tar.Z执行后会生成
diabetes-data.tar文件。提取tar包内的CSV文件
用tar命令解压tar包,提取里面的实际数据文件(可先执行!tar -tf diabetes-data.tar查看包内文件名):!tar -xf diabetes-data.tar执行后会得到包内的原始数据文件(比如
diabetes-data.csv)。读取数据文件
直接读取解压后的CSV文件即可,若仍有编码问题再添加encoding='latin1':import pandas as pd columnsNames = [ 'sequenceName', 'TagIdentificator', 'timestamp', 'dateFORMAT', 'x-coordinate-of-the-tag', 'y-coordinate-of-the-tag', 'z-coordinate-of-the-tag', 'activity' ] # 替换成实际解压后的文件名 data = pd.read_csv('diabetes-data.csv', header=None, names=columnsNames, encoding='latin1')
原代码的错误点修正
- 原代码中
io.BytesIO(uploaded[filename]+'.tar')逻辑错误:上传的文件是.tar.Z格式,直接拼接扩展名无法改变压缩结构,二进制内容也不能被pd.read_csv解析。 - 必须完成双层解压,得到原始文本/CSV文件后再读取。
内容的提问来源于stack exchange,提问作者Mireia Farreras Domingo
相关产品推荐
相关产品推荐

