Khi bạn gọi file.read()
, nó sẽ đọc toàn bộ tệp vào bộ nhớ. Sau đó, nếu bạn gọi lại file.read()
trên cùng một đối tượng tệp, nó sẽ đến cuối tệp, vì vậy nó sẽ chỉ trả về một chuỗi rỗng.
Thay vào đó, hãy thử ví dụ: mở lại tập tin:
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()
Bạn cũng có thể sử dụng câu lệnh with
để làm cho rằng mã sạch hơn:
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()
Là một sang một bên, tôi muốn giới thiệu mở tập tin nhị phân trong chế độ nhị phân: open('1.bmp', 'rb')
Nguồn
2011-09-26 16:36:00
với mã đó, tệp thứ hai.read() sẽ không nhận được gì. Bạn nên sử dụng tìm kiếm (0) trước khi đọc lại tệp. –