Python: проблемы с read () при чтении больших данных (двоичный режим)

#python #file-io

#python #file-io

Вопрос:

Этот код работает хорошо:

 f = open("C:/Dokumente und Einstellungen/schnei17/Desktop/a.txt", "r") 
f.seek(0) 
print f.read(200)
  

Но здесь read () не работает должным образом:

 print f.read(2000)
  

Вывод теперь очень короткий. Это ошибка? Файл содержит данные в формате Unicode.
Заранее спасибо.

Решение:

 f = open("C:/Dokumente und Einstellungen/schnei17/Desktop/a.txt", "rb") 
f.seek(0) 
print f.read(200)
  

Комментарии:

1. Вы уверены, что ваш файл содержит 2000 байт данных?

Ответ №1:

Что это дает?

 import os
filename = "C:/Dokumente und Einstellungen/schnei17/Desktop/a.txt"
print "Filesize: %s" % (os.path.getsize(filename),)
f = open(filename, "r")
data = f.read(2000)
print "Read %s bytes" % (len(data),)
  

Размер файла: 62606 Прочитанных 692 байт

И изменение режима чтения на двоичный?

 import os
filename = "NewProv.txt"
print "Filesize: %s" % (os.path.getsize(filename),)
f = open(filename, "rb")
data = f.read(2000)
print "Read %s bytes" % (len(data),)
  

Комментарии:

1.Размер файла: 62606 Прочитанных 692 байт

2. Размер файла: 62606 Прочитанных 2000 байт