Python 无法正确编码

Python 无法正确编码,python,csv,Python,Csv,在Python 3.5.1下启动时,以下代码会产生错误: 文件“D:/Python/Kut/exceltocsv.py”,第22行,在表单中 WriteObj.writerow([rowvalues中的条目对应条目]) TypeError:需要类似字节的对象,而不是“str” 谁能帮我修一下吗?(我故意使用openpyxl而不是xlrd。) 这方面的文档不足,但Python 3的csv希望您的文件以文本模式打开,而不是以字节模式打开 (另外,在文档中,您应该在打开调用中设置newline=')

在Python 3.5.1下启动时,以下代码会产生错误:

文件“D:/Python/Kut/exceltocsv.py”,第22行,在表单中 WriteObj.writerow([rowvalues中的条目对应条目])

TypeError:需要类似字节的对象,而不是“str”

谁能帮我修一下吗?(我故意使用openpyxl而不是xlrd。)


这方面的文档不足,但Python 3的
csv
希望您的文件以文本模式打开,而不是以字节模式打开

(另外,在文档中,您应该在
打开
调用中设置
newline='


尝试
open(filename'w',newline='',encoding='utf-8')

删除.encode()可能会起作用。我删除了.encode(),但它仍然不想起作用。我不熟悉csv,所以我不知道。可能需要
字节(entry.encode(),“ENCODING”)
import os
import openpyxl
import csv

def sheets_tocsv(file, place):     
    workbook = openpyxl.load_workbook(file)
    sheetnames = workbook.get_sheet_names()


    for sheetname in sheetnames:
        worksheet = workbook.get_sheet_by_name(sheetname)

        csv_file = open(''.join([place, sheetname, '.csv']), 'wb')   
        writobj = csv.writer(csv_file, quoting=csv.QUOTE_ALL)  


        for row in range(worksheet.get_highest_row()):   
            rowvalues = []
            for i in worksheet.rows[row]:
                rowvalues.append(str(i.value))
            writobj.writerow([entry.encode() for entry in rowvalues])  
        csv_file.close()