Frage

http: // scienceoss. com / Lese-Excel-Dateien-from-python / Kommentar-Seite-1 / # comment-1051

Von dem obigen Link, habe ich dieses Dienstprogramm eine XLS-Datei zu lesen. Wenn die XLS-Datei andere Sprache Zeichen wie Chinesisch oder Hindi enthält, tut es nicht geben sie richtig. Gibt es eine Abhilfe für dieses?

Nach googeln, fand ich diese:

import xlrd

def upload_xls(dir,file,request):
    try:
        global msg
        global row_num
        row_num = []
        header_arr = []
        global file_path
        file_path = dir
        #reader = csv.reader(open(file), delimiter='#', quotechar='"')
        book = xlrd.open_workbook('dodgy.xls',encoding='cp1252')   ##To specify UTF8-encoding
        wb.sheet_names()
        sh =  wb.sheet_by_index(0)
        valid_xl_format = 0
        invalid_xl_format = 0
     except:
        print "Error

Aber es ist ein Fehler in der Leitung book = open_workbook('dodgy.xls',encoding='cp1252'):

  

TypeError: open_workbook() got an unexpected keyword argument 'encoding'

War es hilfreich?

Lösung

Nach der xlrd Modul Dokumentation , die richtigen Parameter sind: encoding_override = "cp1252" und nicht encoding = "cp1252" .

Von der Art und Weise Sie das xlrd Modul importieren, sollten Sie die Funktion als xlrd.open_workbook anrufen aber im Beispielcode Sie die Funktion direkt verwenden, als ob Sie benutzt hatte „von xlrd import *“.

Andere Tipps

[dis] Verkünder. Ich bin der Autor von xlrd

  

Wenn die xls enthält verschiedene Sprachzeichen wie chine oder   hindi.It nicht ausgibt, die genauen wordings.Is es eine Arbeit um für   dies ..

Das encoding_override Argument ist (wie in der Dokumentation beschrieben) verwendet nur für alte Dateien (hergestellt von Zeichnet sich früher als Excel 97 (das Jahr 1997) ist), und nur dann, wenn der intern aufgezeichneten „Codepage“ fehlt oder falsch ist.

Hinweis: Alte Datei mit chinesischen Schriftzeichen. Aufschalten mit ‚cp1252‘ gewährleistet ist, eine Ausnahme erhöhen

Hinweis: Alte Datei mit „Hindi“ (Devanagari?) Zeichen: sehr unwahrscheinlich ... soweit ich weiß, es war nie eine offiziell unterstützte Codepage für eine der ISCII Skripte, und ich habe nicht von irgend gehört inoffiziell. Alle Informationen zu diesem Thema und / oder Beispieldateien wären sehr willkommen.

Excel 97 und spätere Versionen aufzeichnen alle Textdaten in (effektiv) UTF-16LE. Die encoding_override ignoriert, wenn die Datei eine gültige Excel-97-oder-später-Datei ist.

Wie auch immer die Version von Excel, das die Datei erzeugt, (wie dokumentiert) xlrd kehrt Strings Unicode. Ihre Probleme sind viel eher verwandt sein, wie Sie anzeigen oder diese Unicode-Strings zu konvertieren.

Für weitere Unterstützung, bearbeiten Sie Ihre Frage Beispiele für die tatsächliche Leistung zu zeigen, zusammen mit dem „genauen Wortlaut“.

Es gibt ein csv-Modul in der Standardbibliothek, die Griffe Unicode in Python 3.1.

Achtung:. in Python 2.x die CSV-Bibliothek funktioniert nicht handle Unicode

Es gibt eine ähnliche Frage. Die Antwort wurde die Ausgabe verursacht Problem, nicht xlrd.

Antwort auf, wie setzen Sie Ihr Skript auf UTF-8 -> https://stackoverflow.com/a/17628350/713

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top