我正在嘗試使用xlrd讀取Excel文件以寫入txt文件。除了有一些西班牙文字符如'Téd'的行以外,所有東西都寫得很好。我可以使用latin-1編碼進行編碼。然而,代碼然後失敗的其他行有'與unicode u'\ u2013''。 u'\ 2013'不能使用latin-1進行編碼。當使用UTF-8''寫得很好,但'Téd'寫成'Téd'這是不可接受的。我如何糾正這一點。下面使用xlrd讀取Excel時使用哪種編碼
代碼:
#!/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"
閱讀[絕對最小每個軟件開發人員絕對,積極必須知道Unicode和字符集(沒有藉口!)](http://www.joelonsoftware.com/articles/Unicode.html)。 – katrielalex