Python ist3 UnicodeDecodeError mit readlines () - Methode
Versuchen, erstellen Sie einen twitter-bot, der liest die Zeilen aus und Bucht Sie. Mit Python ist3 und tweepy, über eine virtualenv auf meinem shared-server-Raum. Dies ist der Teil des Codes, der anscheinend Probleme:
#!/foo/env/bin/python3
import re
import tweepy, time, sys
argfile = str(sys.argv[1])
filename=open(argfile, 'r')
f=filename.readlines()
filename.close()
dies ist die Fehlermeldung die ich bekomme:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfe in position 0: ordinal not in range(128)
Den Fehler konkret Punkte zu f=filename.readlines()
als die Quelle des Fehlers. Irgendeine Idee was falsch sein könnte? Danke.
Finden Sie in diesem Beitrag, es hat zwei wirklich hilfreiche Antworten, die Sie versuchen sollten.
Ich habe das encoding encoding='iso-8859-1', Es ist mein problem gelöst
Ich habe das encoding encoding='iso-8859-1', Es ist mein problem gelöst
InformationsquelleAutor r_e_cur | 2016-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, die beste Antwort (in Python 3) ist die Verwendung der
errors=
parameter:Beweis:
Beachten Sie, dass die
errors=
werden kannreplace
oderignore
. Hier ist, wasignore
aussieht:InformationsquelleAutor caleb
Ihre Standard-Codierung wird zu dem ASCII-Zeichensatz sein, wo der Eingang ist mehr als wahrscheinlich UTF-8. Wenn Sie auf nicht-ASCII-bytes in der Eingabe, es wirft die Ausnahme. Es ist nicht so viel, dass
readlines
ist selbst verantwortlich für das problem; eher, es ist was zu Lesen+zu decodieren auftreten, und das Dekodieren fehlschlägt.Es ist leicht zu beheben, obwohl; die Standard -
open
in Python 3 können Sie den bekanntenencoding
einer Eingabe, ersetzen der Standard-ASCII (in deinem Fall) mit allen anderen erkannt-Kodierung. Die Bereitstellung von it ermöglicht es Ihnen, um zu Lesen, wiestr
(eher als der deutlich verschiedenen rohen binären Datenbytes
Objekte), während der Vermietung Python die Arbeit der Konvertierung von raw-disk-bytes auf true text Daten:InformationsquelleAutor ShadowRanger
Schließlich finden eine Arbeit für mich beantworten:
Dieser Beitrag hat mir viel geholfen.
bytes
Objekte anstelle vonstr
(und muss manuelldecode
Sie, wenn Sie wollen, mit zu arbeitenstr
). Ich habe gebucht eine Antwort, die vermeidet, dass diese (vorausgesetzt, Sie wissen, die Codierung, die Sie brauchen, um wissen zur Durchführung derdecode
sowieso).InformationsquelleAutor r_e_cur