0

我编写了一个小脚本来读取多个 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 完全陌生,我还无法理解所有内容。有人想指出我正确的方向吗?

提前谢谢了。

4

1 回答 1

0

正如评论者所建议的,您需要将浮点数转换为字符串才能使用+运算符:

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

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

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

或者,如:

for cell in sh1c1: xmlData.write("%s\n" % cell)
于 2012-12-31T13:48:53.237 回答