1
У меня есть простой фрагмент Python, который копирует лист Excel Macros в csvs. Фрагмент взрывается по какой-то странной причине. Я использовал этот фрагмент с Python 2.7
и не испытывал никаких проблем с ним. Недавно я загрузил Python 3.6
. Как я могу исправить эту проблему?Python - необходим байтовый объект, а не 'str'
import csv
import xlrd
workbook = xlrd.open_workbook('P:/LFC Lots and Sales-NEW.xlsm')
for sheet in workbook.sheets():
with open('{}.csv'.format(sheet.name), 'wb') as f:
writer = csv.writer(f)
writer.writerows(sheet.row_values(row) for row in range(sheet.nrows))
print ("Sheets copied")
Traceback:
writer.writerows(sheet.row_values(row) for row in range(sheet.nrows))
TypeError: a bytes-like object is required, not 'str'
С Python 3, вы также хотите 'перевод строки = '' 'в вашем открытым - см документы [здесь] (https://docs.python.org/3/library/csv.html # csv.writer) и прочитайте сноску # 1. – DSM