Ich habe online eine Liste der meisten englischen Wörter gefunden, aber die Zeilenumbrüche sind unix-artig (kodiert in Unicode: UTF-8). Ich habe es auf dieser Website gefunden: Ссылка
Wie konvertiere ich die Zeilenumbrüche nach CRLF, damit ich sie überstreichen kann? Das Programm, mit dem ich sie benutzen werde, durchläuft jede Zeile in der Datei, also müssen die Wörter eins pro Zeile sein.
Dies ist ein Teil der Datei: bitbackbitebackbiterbackbitersbackbitesbackbitingbackbittenbackboard
Es sollte sein:
%Vor%Wie kann ich meine Dateien in diesen Typ konvertieren? Hinweis: Es sind 26 Dateien (eine pro Buchstabe) mit insgesamt 80.000 Wörtern (das Programm sollte also sehr schnell sein).
Ich weiß nicht, wo ich anfangen soll, weil ich noch nie mit Unicode gearbeitet habe. Vielen Dank im Voraus!
Verwenden von rU
als Parameter (wie vorgeschlagen), mit diesem in meinem Code:
Ich bekomme diesen Fehler:
%Vor%Kann mir jemand dabei helfen?
Anstatt zu konvertieren, sollten Sie in der Lage sein, die Datei einfach mit Pythons universellen Newline-Unterstützung
(Beachten Sie die U
.)
Sie müssen die Zeilenenden in den Dateien nicht konvertieren, um über sie iterieren zu können. Wie von der NPE vorgeschlagen, verwenden Sie einfach pythons universellen Zeilenmodus .
Der UnicodeDecodeError passiert, weil die Dateien, die Sie verarbeiten, als UTF-8 codiert sind und wenn Sie versuchen, den Inhalt von Bytes in einen String über str(line)
zu dekodieren, verwendet Python die cp1252
Kodierung, um die gelesenen Bytes zu konvertieren aus der Datei in eine Python 3-Zeichenfolge (dh eine Sequenz von Unicode-Codepunkten). Es gibt jedoch Bytes in diesen Dateien, die nicht mit der Codierung cp1252
decodiert werden können und die einen UnicodeDecodeError verursachen.
Wenn Sie str(line)
in line.decode('utf-8')
ändern, sollten Sie UnicodeDecodeError nicht mehr erhalten. Schau dir die Text Vs. Daten anstelle von Unicode Vs. 8-bit writeup für weitere Details.
Schließlich finden Sie möglicherweise auch Das absolute Minimum, das jeder Software-Entwickler unbedingt, unbedingt über Unicode und Zeichensätze wissen muss (keine Ausreden !) von Joel Spolsky nützlich.