2013-10-01 3 views
10

Sto cercando di caricare un foglio di lavoro attualmente esistenti e importare il file di testo (valori separati da virgola) screenshot mostrato di seguito,Python Lanciare "codec 'utf8' non è in grado di decodificare byte 0xD0 in posizione 0" Errore

foglio di Excel :

enter image description here

file di testo:

enter image description here

sto usando il codice mostrato belo 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() 

sto ottenendo un messaggio di errore seguente:

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

Ancora una domanda: come si può dire di pitone per importare i dati di testo a partire dalla colonna A3 nel foglio excel?

risposta

3

codifica Unicode mi confonde, ma non si può forzare il valore di ignorare i byte non validi dicendo:

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

Ecco una grande risposta per più lettura sulla unicode: unicode().decode('utf-8', 'ignore') raising UnicodeEncodeError

+0

Grazie, Adam! Ho provato a farlo ma ho ancora lo stesso errore. – Raj

1

Hi Sei sicuro di non avere un documento che ha UTF-8 BOM

Si potrebbe provare a utilizzare con UTF-8 BOM codec. Generalmente Windows + UTF + 8 può essere un po 'problematico. Sebbene quel personaggio che sta mostrando potrebbe non essere il BOM.

2

openpyxl tratta solo con il formato OOXML (xlsx/xlsm). Si prega di provare a salvare come formato file xlsx invece di xls utilizzando Excel.

Se si desidera convertire il file xls in xlsx nei codici. Si prega di provare un'opzione dal seguente elenco:

  1. In Windows, è anche possibile utilizzare excelcnv strumento per convertire xls a xlxx.
  2. In Linux, verificare this article.
  3. Oppure, è possibile convertire in xlsx utilizzando xlrd in Python. Si prega di controllare this Q&A.