python读取excel的问题
#coding=utf-8importxlrdworkbook=xlrd.open_workbook('Cura.xls')#打开一个excelsheet=workboo...
#coding=utf-8
import xlrd
workbook = xlrd.open_workbook('Cura.xls')#打开一个excel
sheet = workbook.sheet_by_name(u'sheet1')#获取一个工作表
buf=sheet.col_values(1)
jp=open("jp1",'w')
for i in range(0,len(buf)):
jp.write(buf[i].decode('utf-8'))
jp.close()
不成功,说
咋整? 展开
import xlrd
workbook = xlrd.open_workbook('Cura.xls')#打开一个excel
sheet = workbook.sheet_by_name(u'sheet1')#获取一个工作表
buf=sheet.col_values(1)
jp=open("jp1",'w')
for i in range(0,len(buf)):
jp.write(buf[i].decode('utf-8'))
jp.close()
不成功,说
咋整? 展开
1个回答
展开全部
你试这样子。将
jp.write(buf[i].decode('utf-8'))
改成
jp.write(unicode(buf[i]).encode('utf-8'))
python2有自动编码转换的功能。原来type(buf[i])如果是unicode,你还要decode,那么它会自动先按ascii进行encode,变成str型后,再运行decode('utf-8')。所以就会出现你上面的那个错误,汉字是不能encode成ascii的。
也许刚才的答案是错误的。
你还可以试试
jp.write(buf[i])
另外说明一下。写到socket或者是文件里,必须是string类型。不能是unicode。
这在python2和python3里是一样的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询