2017-08-03 17 views
2

私はpython3スクリプトに問題があります.xlsxwriterを閉じることです。私はworkbook.close()をインクルードしましたが、これは何らかのエラーを引き起こすようです。誰が問題が何であるか知っていますか?Xlsxwriter Python3エラー

import xlsxwriter 
import statistics 

workbook = xlsxwriter.Workbook('data.xlsx') 
worksheet = workbook.add_worksheet() 
bold = workbook.add_format({'bold': True}) 

power = [] 

for row in list: 
    power.append(row) 
    worksheet.write(i, col, row) 
    col += 1 

worksheet.write(i, col, statistics.median(power)) 

workbook.close() 

Traceback (most recent call last): 
    File "example.py", line 71, in <module> 
    workbook.close() 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/workbook.py", line 311, in close 
    self._store_workbook() 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/workbook.py", line 619, in _store_workbook 
    xml_files = packager._create_package() 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/packager.py", line 139, in _create_package 
    self._write_shared_strings_file() 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/packager.py", line 286, in _write_shared_strings_file 
    sst._assemble_xml_file() 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/sharedstrings.py", line 54, in _assemble_xml_file 
    self._write_sst_strings() 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/sharedstrings.py", line 84, in _write_sst_strings 
    self._write_si(string) 
    File "/usr/local/lib/python3.4/dist-packages/xlsxwriter/sharedstrings.py", line 96, in _write_si 
    string = re.sub('(_x[0-9a-fA-F]{4}_)', r'_x005F\1', string) 
    File "/usr/lib/python3.4/re.py", line 179, in sub 
    return _compile(pattern, flags).sub(repl, string, count) 
TypeError: can't use a string pattern on a bytes-like object 
+1

@Rahul XlsxWriterは新しいですが、この問題はモジュールの新機能や成熟度とは関係ありません。 – jmcnamara

+0

@Rahul質問にはファイルを読むことについて何もありません。 – jmcnamara

+0

私はお詫び申し上げます。私はあなたが作家であることを知らなかった。私は私のコメントと答えを削除しました。 – Rahul

答えて

0

.decodeを使用してバイト状オブジェクトを文字列に変換する必要があります。 obj = response.read().decode('utf-8').

あなたの場合、リスト内のオブジェクトはバイト型で、文字列に変換する必要があります。

は、私はそれをコンパイルするために取得する例をいくつかの変数の初期化を追加し、Python 2と3で正しく実行するように見えるConvert bytes to a Python String

0

を参照してください:

import xlsxwriter 
import statistics 

workbook = xlsxwriter.Workbook('data.xlsx') 
worksheet = workbook.add_worksheet() 
bold = workbook.add_format({'bold': True}) 

power = [] 

# I added these variables to the OP program. 
list = [1, 2, 3, 4, 5] 
i = 0 
col = 0 

for row in list: 
    power.append(row) 
    worksheet.write(i, col, row) 
    col += 1 

worksheet.write(i, col, statistics.median(power)) 

workbook.close() 

出力:

enter image description here

これとあなたの例の違いは、リスト配列の内容だと思います。

質問を実際の問題を示す例で更新できますか?

関連する問題