Если это не текстовый файл, попробуйте открыть его в формате binary
. Попробуйте это -
with open("path-to-file", "rb") as f:
byte = f.read(1)
while byte != "":
byte = f.read(1) # Do stuff with byte.
Оператор with
обрабатывает открытие и закрытие файла, в том числе, если во внутреннем блоке возникает исключение.
Конечно, поскольку формат двоичный, вам нужно знать, что вы собираетесь делать после того, как прочитаете. Кроме того, здесь я читаю 1 байт за раз, вы также можете определить больший размер чанка.
ОБНОВЛЕНИЕ: Возможно, это не двоичный файл. У вас могут быть проблемы с кодировкой файлов, символы могут быть не ascii или они могут принадлежать кодировке Unicode. Попробуйте это -
import codecs
f = codecs.open(u'path-to-file','r','utf-8')
print f.read()
f.close()
Если вы распечатаете это в терминале, вы все равно можете получить бред, поскольку терминал может не поддерживать эту кодировку. Я бы посоветовал продолжить и обработать текст, предполагая, что он правильно открыт.
Источник