我写了一个小脚本来读取多个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的新手,我无法理解所有的东西。有人想指出我正确的方向吗?
非常感谢提前。
答案 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)