Когда вы вызываете file.read()
, он прочитает весь файл в память. Затем, если вы снова вызовете file.read()
для того же файлового объекта, он уже достигнет конца файла, поэтому он вернет только пустую строку.
Вместо этого попробуйте, например, повторное открытие файла:
from StringIO import *
file = open('1.bmp', 'r')
print file.read(), '\n'
file.close()
file2 = open('1.bmp', 'r')
print StringIO(file2.read()).getvalue()
file2.close()
Вы также можете использовать оператор with
, чтобы сделать этот код чище:
from StringIO import *
with open('1.bmp', 'r') as file:
print file.read(), '\n'
with open('1.bmp', 'r') as file2:
print StringIO(file2.read()).getvalue()
Кроме того, я бы рекомендовал открывать двоичные файлы в двоичном режиме: open('1.bmp', 'rb')