读取数字时出现xlrd错误

时间:2012-12-31 13:20:31

标签: python numbers xlrd

我写了一个小脚本来读取多个excel文件并将数据写入xml文件。我删掉了一些脚本来解释出了什么问题。它看起来像这样:

import glob, xlrd

xmlFile = 'example.xml'
xmlData = open(xmlFile, 'a')

for xlsfile in glob.glob('*.xls'):

    wb = xlrd.open_workbook(xlsfile)
    sh1 = wb.sheet_by_index(0)
    sh1c1 = sh1.col_values(1)   


    for cell in sh1c1: xmlData.write(cell + "\n")

只要我的excel文件中的单元格中只有文本,一切都很顺利。当其中一个单元格中有一个数字时;我收到一个错误:

 Traceback (most recent call last):
    File "test.py", line 14, in <module>
   for cell in sh1c1: xmlData.write(cell + "\n")
TypeError: unsupported operand type(s) for +: 'float' and 'str'

只有在某些单元格和某些文件中才包含数字。我已经阅读了很多关于浮点数,整数和字符串的内容,但我还没有找到在上面的代码中应用它的方法。我是python的新手,我无法理解所有的东西。有人想指出我正确的方向吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

正如评论者建议的那样,您需要将float转换为字符串以使用+运算符:

for cell in sh1c1: xmlData.write(str(cell) + "\n")

或者,您可以将其重写为:

for cell in sh1c1: xmlData.write("{0}\n".format(cell)) 

或者,as:

for cell in sh1c1: xmlData.write("%s\n" % cell)