Mit xlrd Excel xls-Datei mit chinesischer und / oder Hindi Zeichen zu lesen
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'
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