2013-10-01 4 views
10

投げます:Pythonのエラーは、私は現在、既存のワークシートをロードして、テキストファイル(カンマ区切り形式)をインポートしようとしています「『UTF8』コーデックは位置0でバイト0xd0をデコードすることはできません」とは、以下に示すスクリーンショット、</p> <p>Excelシートを

enter image description here

テキストファイル:

enter image description here

私はベロを示すコードを使用していますW:

# importing necessary modules for performing the required operation 
    import glob 
    import csv 
    from openpyxl import load_workbook 
    import xlwt 

    #read the text file(s) using the CSV modules and read the dilimiters and quoutechar 
    for filename in glob.glob("E:\Scripting_Test\Phase1\*.txt"): 
     spamReader = csv.reader((open(filename, 'rb')), delimiter=',') 


     #read the excel file and using xlwt modules and set the active sheet 
     wb = load_workbook(filename=r"E:\Scripting_Test\SeqTem\Seq0001.xls") 
     ws = wb.worksheets(0) 


     #write the data that is in text file to excel file 
     for rowx, row in enumerate(spamReader): 
      for colx, value in enumerate(row): 
       ws.write(rowx, colx, value) 

     wb.save() 

私は、次のエラーメッセージを取得しています:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte

もう一つ質問:どのようにExcelシートにA3列から始まるテキストデータをインポートするためのpythonを伝えることができますか?

答えて

3

Unicodeエンコーディングが私を混乱させるが、あなたが言って、無効なバイトを無視する値を強制することはできません。

value = unicode(value, errors='ignore') 

ここでは、Unicodeの詳細読書のための偉大な答えです:unicode().decode('utf-8', 'ignore') raising UnicodeEncodeError

+0

ありがとう、アダム!私はちょうどそれをやってみましたが、それと同じエラーです。 – Raj

1

こんにちは、あなたはありますあなたが持っているドキュメントを持っていないことを確認してくださいUTF-8 BOM

UTF-8 BOM codecで試してみることもできます。一般に、Windows + UTF + 8は面倒なことがあります。それが示す文字はBOMではないかもしれませんが。

2

openpyxlは、OOXMLフォーマット(xlsx/xlsm)のみを扱います。 Excelを使用してxlsではなくxlsxファイル形式で保存してください。

コードでxlsファイルをxlsxに変換したい場合。下のリストから1つのオプションを試してみてください:

  1. Windowsでは、あなたもxlxxするxlsファイルを変換するexcelcnvツールを使用することができます。
  2. Linuxの場合、this articleにチェックを入れてください。
  3. または、xlrdをPythonで使用してxlsxに変換できます。 this Q&Aを確認してください。
関連する問題

 関連する問題