1
マクロシートのExcelシートをcsvsにコピーする簡単なPythonスニペットがあります。スニペットは何らかの奇妙な理由のために爆破する。私は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")
トレースバック:
writer.writerows(sheet.row_values(row) for row in range(sheet.nrows))
TypeError: a bytes-like object is required, not 'str'
python 3では、開かれた状態で 'newline = '''を使用することもできます - ドキュメント[here](https://docs.python.org/3/library/csv.html)を参照してください。 #csv.writer)と脚注#1を読んでください。 – DSM