解析从xlrd.Book对象中读取的unicode字符串

3 投票
2 回答
3047 浏览
提问于 2025-04-16 19:55

我正在尝试从一个用xlrd(其实是xlsxrd)读取的Excel 2007单元格中解析一些Unicode文本。
不知道为什么,xlrd在Unicode字符串的开头加上了“text: ”,这让我在转换数据类型时遇到了困难。我最终想要反转这个字符串的顺序,因为它是一个名字,之后会和其他几个名字一起按字母顺序排列。希望能得到一些帮助,谢谢。

这是我想做的一个简单示例:

>>> import xlrd, xlsxrd
>>> book = xlsxrd.open_workbook('C:\\fileDir\\fileName.xlsx')
>>> book.sheet_names()
[u'Sheet1', u'Sheet2']
>>> sh = book.sheet_by_index(1)
>>> print sh
<xlrd.sheet.Sheet object at 0x(hexaddress)>
>>> name = sh.cell(0, 0)
>>> print name
text: u'First Last'

在这里,我想解析“name”,将'First'和'Last'互换,或者只是将它们分开存储在两个不同的变量中,但我尝试过的每一种数据类型转换都出现了错误。也许我这样做的方法不对?提前谢谢大家!

2 个回答

0

去看看xlrd文档里的Cell类的介绍。然后可以通过www.python-excel.org上的教程来学习一下。

4

我觉得你可能需要

name = sh.cell(0,0).value

获取一个unicode对象。然后,为了把它分成两个变量,你可以用一个空格作为分隔符,得到一个包含名字和姓氏的列表:

split_name = name.split(' ')
print split_name

这样就得到了 [u'First', u'Last']。你可以很简单地反转这个列表:

split_name = split_name.reverse()
print split_name

这样就变成了 [u'Last', u'First']

撰写回答