不带熊猫的Python解码excel工作表
我试图在不使用不带熊猫的Python解码excel工作表,python,excel,utf-8,Python,Excel,Utf 8,我试图在不使用pandas或xlrd的情况下读取python中的excel文件,并且一直试图将结果从字节转换为utf-8,但没有成功 来自xls文件的数据 colA colB colC spc 1D0 20190705 spd 1D0 20190705 spe 1D0 20190705 ... (goes on for 500k lines) with open(file, 'rb') as f: data = f.readl
pandas
或xlrd
的情况下读取python中的excel文件,并且一直试图将结果从字节
转换为utf-8
,但没有成功
来自xls文件的数据
colA colB colC
spc 1D0 20190705
spd 1D0 20190705
spe 1D0 20190705
... (goes on for 500k lines)
with open(file, 'rb') as f:
data = f.readlines(1) # Just to check the first line that is printed out
print(data[0].decode('utf-8'))
代码
colA colB colC
spc 1D0 20190705
spd 1D0 20190705
spe 1D0 20190705
... (goes on for 500k lines)
with open(file, 'rb') as f:
data = f.readlines(1) # Just to check the first line that is printed out
print(data[0].decode('utf-8'))
我收到的错误是UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xd0:无效的连续字节
如果我打印数据
而不进行解码,结果是:[b b方\0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ \ \ \ \ \x0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F\x00\x00\x00\x00\xfeM\x00\x00\x01\x00\x00\x00\xffM\x00\x00\x00\x00N\x00\x00\x01N\x00\x00\x02N\x00\x00\x03N\x00\x00\x04N\x00\x00\x05N\x00\x00\x06N\x00\x00\x07N\x00\x00\x08N\x00\x00\x00\tN\x00\x00\n']
我没有任何理由不想使用pandas
或xlrd
,我只是尝试在需要时使用标准库解析数据
有什么想法吗?您需要先解压缩xlsx文件,然后才能读取其内容(假设您使用的是这种格式).错误表明Excel文件中有一个特定字符无法用“utf-8”解码。请尝试使用其他编码器,但仍然不知道文档中可能隐藏着什么类型的字符。也许,您应该尝试一下:
pd.read\u Excel(文件)
看看你得到了什么。Excel是一种二进制格式,而不是纯文本。如果你不想使用xlrd
或pd.read\u Excel
,你就必须重新实现那些库的功能。即使你想解析.xlsx文件,这比.xls要简单得多,你仍然有很多工作要做。我猜你是作为一个整体来做的学习练习?如果是的话,那么我认为你应该看看哪里可以阅读.xlsx规范。如果你真的想学习.xls文件,我敦促你重新考虑。你可以学习很多其他更有用、更少痛苦的东西。理想情况下,你应该展示一些代码如何做到这一点s(例如,使用std libzipfile
模块),然后在解包xlsx存档后如何继续(处理哪个文件,如何访问单元格数据等)在进入这样的企业之前,等待确认xlsx确实是OP试图读取的格式可能是明智的……另请参见,介绍一种仅使用标准库功能读取`*.xlsx*Excel文件的解决方案。