Я пишу программу для итерации моего Robocopy-Log (> 25 МБ). Это далеко не готово, потому что я столкнулся с проблемой.Python3: Почему я получаю UnicodeDecodeError или это проблема памяти?
Проблема состоит в том, что после того, как переборе ~ 1700 строк моего журнала -> я получаю "UnicodeError":
Traceback (most recent call last):
File "C:/Users/xxxxxx.xxxxxx/SkyDrive/#Python/del_robo2.py", line 6, in <module>
for line in data:
File "C:\Python33\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 7869: character maps to <undefined>
Программа выглядит следующим образом:
x="Error"
y=1
arry = []
data = open("Ausstellungen.txt",mode="r")
for line in data:
arry = line.split("\t")
print(y)
y=y+1
if x in arry:
print("found")
print(line)
data.close()
Если я уменьшить TXT файл до 1000 строк, то программа работает. Если я удаляю строку с 1500 по 3000 и снова запускаю, я снова получаю ошибку Unicode в строке 1700.
Так что я сделал ошибку или это проблема ограничения памяти Python?
Это проблема с кодировкой, а не проблема с памятью. – pynovice
Вы должны передать аргумент 'encoding' для' open' (если вы находитесь на python3, в python2 используйте 'codecs.open'). – Bakuriu