2017-02-21 17 views
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' 

答えて

1

がそれを手に入れました!私がする必要があったのはwbwに変更することでした。

+1

python 3では、開かれた状態で 'newline = '''を使用することもできます - ドキュメント[here](https://docs.python.org/3/library/csv.html)を参照してください。 #csv.writer)と脚注#1を読んでください。 – DSM

関連する問題