我正在尝试使用 xlrd 读取 Excel 文件以写入 txt 文件。一切都写得很好,除了一些行有一些西班牙字符,比如“Téd”。我可以使用 latin-1 编码对它们进行编码。但是,对于具有 'â' 和 unicode u'\u2013' 的其他行,该代码将失败。u'\2013' 不能使用 latin-1 编码。使用 UTF-8 时,'â' 写得很好,但 'Téd' 写成 'Téd',这是不可接受的。我该如何纠正这个。
下面的代码:
#!/usr/bin/python
import xlrd
import csv
import sys
filePath = sys.argv[1]
with xlrd.open_workbook(filePath) as wb:
shNames = wb.sheet_names()
for shName in shNames:
sh = wb.sheet_by_name(shName)
csvFile = shName + ".csv"
with open(csvFile, 'wb') as f:
c = csv.writer(f)
for row in range(sh.nrows):
sh_row = []
cell = ''
for item in sh.row_values(row):
if isinstance(item, float):
cell=item
else:
cell=item.encode('utf-8')
sh_row.append(cell)
cell=''
c.writerow(sh_row)
print shName + ".csv File Created"