从python中的xls读取unicode
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从python中的xls读取unicode,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2947字,纯文字阅读大概需要5分钟。
内容图文
![从python中的xls读取unicode](/upload/InfoBanner/zyjiaocheng/770/dd37c6c3c1e84f4682fc13b543e65646.jpg)
我正在尝试使用Python读取.xls文件.该文件包含多个非ascii字符(即äöü).我已经尝试过使用openpyxls和xlrd(我对xlrd寄予厚望,因为它无论如何都会读取unicode中的所有内容),但都没有工作.
我在尝试从xls打印信息时发现了多个处理编码/解码的答案,但我似乎无法达到那么远.只需尝试读取文件后,此脚本就会出错:
import xlrd
workbook = xlrd.open_workbook('export_data.xls')
导致:
Traceback (most recent call last):
File "C:\Users\Administrator\workspace\tufinderxlstoxml\tufinderxlstoxml2.py", line 2, in <module>
workbook = xlrd.open_workbook('export_data.xls')
File "C:\Python27_32\lib\site-packages\xlrd\__init__.py", line 435, in open_workbook
ragged_rows=ragged_rows,
File "C:\Python27_32\lib\site-packages\xlrd\book.py", line 119, in open_workbook_xls
bk.get_sheets()
File "C:\Python27_32\lib\site-packages\xlrd\book.py", line 705, in get_sheets
self.get_sheet(sheetno)
File "C:\Python27_32\lib\site-packages\xlrd\book.py", line 696, in get_sheet
sh.read(self)
File "C:\Python27_32\lib\site-packages\xlrd\sheet.py", line 796, in read
strg = unpack_string(data, 6, bk.encoding or bk.derive_encoding(), lenlen=2)
File "C:\Python27_32\lib\site-packages\xlrd\biffh.py", line 269, in unpack_string
return unicode(data[pos:pos+nchars], encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 55: ordinal not in range(128)
WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
*** No CODEPAGE record, no encoding_override: will use 'ascii'
*** No CODEPAGE record, no encoding_override: will use 'ascii'
我也尝试过:
workbook = xlrd.open_workbook('export_data.xls', encoding_override="utf-8")
导致:
Traceback (most recent call last):
File "C:\Users\Administrator\workspace\tufinderxlstoxml\tufinderxlstoxml2.py", line 2, in <module>
workbook = xlrd.open_workbook('export_data.xls', encoding_override="utf-8")
File "C:\Python27_32\lib\site-packages\xlrd\__init__.py", line 435, in open_workbook
ragged_rows=ragged_rows,
File "C:\Python27_32\lib\site-packages\xlrd\book.py", line 119, in open_workbook_xls
bk.get_sheets()
File "C:\Python27_32\lib\site-packages\xlrd\book.py", line 705, in get_sheets
self.get_sheet(sheetno)
File "C:\Python27_32\lib\site-packages\xlrd\book.py", line 696, in get_sheet
sh.read(self)
File "C:\Python27_32\lib\site-packages\xlrd\sheet.py", line 796, in read
strg = unpack_string(data, 6, bk.encoding or bk.derive_encoding(), lenlen=2)
File "C:\Python27_32\lib\site-packages\xlrd\biffh.py", line 269, in unpack_string
return unicode(data[pos:pos+nchars], encoding)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 55: invalid start byte
WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
并包括顶部各种版本:
# -*- coding: utf-8 -*-
我在Windows Server 2008计算机上的python 2.7上运行它.
解决方法:
谢谢大家的反馈!
我最终使用encoding_override函数修复了它.我无法找到cp代码对应德语字符的Microsoft文档,所以我尝试了所有这些.最终我得到了cp1251,它有效!
workbook = xlrd.open_workbook(path, encoding_override="cp1251")
内容总结
以上是互联网集市为您收集整理的从python中的xls读取unicode全部内容,希望文章能够帮你解决从python中的xls读取unicode所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。