Python Unicode解码错误-即使在建议的更正后也无法运行脚本
我正在使用Python Unicode解码错误-即使在建议的更正后也无法运行脚本,python,Python,我正在使用python2.7.9使用制表符分隔的文本文件创建excel工作表;然而,我在运行这个python脚本时遇到了问题 #!/usr/bin/env python # encoding=utf8 import xlwt import os import sys reload(sys) sys.setdefaultencoding('utf8') wb = xlwt.Workbook() path
python2.7.9
使用制表符分隔的文本文件创建excel工作表;然而,我在运行这个python脚本时遇到了问题
#!/usr/bin/env python
# encoding=utf8
import xlwt
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
wb = xlwt.Workbook()
path = "/home/Final_analysis/"
#print(os.listdir())
lis = os.listdir(path)
sheetnumber = 1
for x in lis:
if os.path.isfile(x)==True:
extension = os.path.splitext(x)
print(extension[1])
if extension[1] == '.txt':
#print("Yes")
ws = wb.add_sheet(extension[0])
row = 0
column = 0
a = open(x)
while True:
a1 = a.readline()
if len(a1)==0:
break
data = a1.split("\t")
for z in data:
ws.write(row,column,z)
column += 1
column = 0
row += 1
sheetnumber+=1
else:
pass
wb.save("Ronic.xls")
我得到以下错误
Traceback (most recent call last):
File "home/Final_analysis/combine_excel_v2.py", line 39, in <module>
wb.save("Ronic.xls")
File "/usr/local/lib/python2.7/site-packages/xlwt/Workbook.py", line 710, in save
doc.save(filename_or_stream, self.get_biff_data())
File "/usr/local/lib/python2.7/site-packages/xlwt/Workbook.py", line 674, in get_biff_data
shared_str_table = self.__sst_rec()
File "/usr/local/lib/python2.7/site-packages/xlwt/Workbook.py", line 636, in __sst_rec
return self.__sst.get_biff_record()
File "/usr/local/lib/python2.7/site-packages/xlwt/BIFFRecords.py", line 77, in get_biff_record
self._add_to_sst(s)
File "/usr/local/lib/python2.7/site-packages/xlwt/BIFFRecords.py", line 92, in _add_to_sst
u_str = upack2(s, self.encoding)
File "/usr/local/lib/python2.7/site-packages/xlwt/UnicodeUtils.py", line 50, in upack2
us = unicode(s, encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 83: ordinal not in range(128)
回溯(最近一次呼叫最后一次):
文件“home/Final\u analysis/combine\u excel\u v2.py”,第39行,在
wb.save(“Ronic.xls”)
文件“/usr/local/lib/python2.7/site packages/xlwt/Workbook.py”,第710行,保存
doc.save(文件名或流,self.get\u biff\u data())
文件“/usr/local/lib/python2.7/site packages/xlwt/Workbook.py”,第674行,在get\u biff\u数据中
共享\u str\u table=self.\u sst\u rec()
文件“/usr/local/lib/python2.7/site packages/xlwt/Workbook.py”,第636行,在
返回自我。获取记录()
文件“/usr/local/lib/python2.7/site packages/xlwt/BIFFRecords.py”,第77行,在get\u biff\u记录中
自身。添加到sst中
文件“/usr/local/lib/python2.7/site packages/xlwt/BIFFRecords.py”,第92行,在“添加到”sst中
u_str=upack2(s,自编码)
upack2第50行的文件“/usr/local/lib/python2.7/site packages/xlwt/UnicodeUtils.py”
us=unicode(s,编码)
UnicodeDecodeError:“ascii”编解码器无法解码第83位的字节0xc3:序号不在范围内(128)
我已经使用了线程中给出的答案
但它不起作用
问题在于
wb.save()
命令设置程序顶部的编码是为了处理代码中的非ascii字符,而不是数据sys.setdefaultencoding('utf8')
不用于普通程序,弊大于利
要解决此问题,请告诉xlwt
要使用的编码
更改此行:
wb = xlwt.Workbook()
为此:
wb = xlwt.Workbook(encoding="UTF-8")
在程序顶部设置编码是为了处理代码中的非ascii字符,而不是数据
sys.setdefaultencoding('utf8')
不用于普通程序,弊大于利
要解决此问题,请告诉xlwt
要使用的编码
更改此行:
wb = xlwt.Workbook()
为此:
wb = xlwt.Workbook(encoding="UTF-8")