2016-11-11 6 views
0

Ich bin sehr neu in Python Scripting, aber ich habe eine sehr einfache Aufgabe, die ich gerne ausführen würde, aber ich halte mich fest daran. Ich versuche nur, Daten aus einer TXT-Datei zu lesen und zu parsen.Unicode Decode Fehler beim Lesen von Daten aus einer TXT-Datei in Python

Schritte ich genommen habe

  1. ich die pdf-Datei von meiner Schulen Website heruntergeladen haben, enthält es eine Liste der Kurse http://info.sjsu.edu/cgi-bin/pdfserv?ftok=soc-fall-courses
  2. ich die pdf-Datei in eine TXT-Datei einfach umgewandelt durch Speichern es als TXT-Datei, um herauszufinden,
  3. die Fehler gegoogelt, dass es irgendeine Art von Codierung Ausgabe
  4. die Terminal-Befehl Datei -I [Dateinamen] verwendet wird, und das Ergebnis zurückgegeben sjsuclassdata.txt: text/plain; charset=unknown-8bit
  5. Online viele Methoden verwendet, um zu versuchen, die Datei in einer UTF-8-Codierung zu konvertieren, aber ohne Erfolg

Fehlermeldung, die ich

Traceback (most recent call last): 
    File "/Users/edward/MyPythonScripts/sjsuClassExtractor.py", line 25, in <module> 
    regexMatches = lectureRegex.findall(file.read()) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/codecs.py", line 321, in decode 
    (result, consumed) = self._buffer_decode(data, self.errors, final) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 9: invalid continuation byte 

So bekam wie Sie sehen können, Ich bin wirklich verloren, was ich von hier aus tun soll. Ich habe bestätigt, dass alles funktioniert, wenn ich eine andere Datei lese, die ähnliche Daten enthält.

+0

„Ich konvertiert die PDF-Datei in eine .txt Datei einfach durch Speichern als .txt-Datei "Haben Sie versucht, diese Datei mit einem Texteditor zu lesen? Denn so wandeln Sie eine PDF-Datei nicht in eine Textdatei um. –

+0

@Rightleg Sie können eine PDF-Datei in Acrobat Reader und "Speichern unter" als TXT-Datei öffnen. Es wird eine korrekte (wenn auch nicht UTF-8-codierte) Textdatei erzeugen. Beachten Sie, wie OP "Speichern unter" sagt und nicht "umbenennen". – Selcuk

+1

@Selcuk Oh mein Schlechter, ich verstand es als "außer dem Netz als .txt". Weißt du, wenn ich das gesagt habe, dann weil ich viele Leute gesehen habe, die meinen, Umbenennen sei gleichbedeutend mit Konvertieren ... –

Antwort

1

Unter der Annahme, dass die ursprüngliche Textdatei ANSI codiert (Standard mit Acrobat Readers 'Save As Text' Option), wird dieser Befehl wandelt es in utf-8:

iconv -f "iso-8859-1" -t "utf-8" sjsuclassdata.txt -o sjsuclassdata-utf8.txt 
+0

Hallo danke, wenn ich das oben im Terminal starte, scheint es etwas für eine schnelle Sekunde zu tun und kehrt dann zurück 'iconv: -o: Keine solche Datei oder kein Verzeichnis iconv: sjsuclassdata-utf8.txt: Keine solche Datei oder kein Verzeichnis' –

+0

@EdwardLim Es sieht so aus, als hätte die iconv Ihrer Plattform nicht das' -o' Argument. In diesem Fall können Sie 'iconv -f" iso-8859-1 "-t" utf-8 "sjsuclassdata.txt> sjsuclassdata-utf8.txt' verwenden – Selcuk