docs Các Python trên file.read() trạng thái đó An empty string is returned when EOF is encountered immediately.
Các tài liệu quốc gia hơn nữa:Python EOF cho các yêu cầu đa byte của file.read()
Lưu ý rằng phương pháp này có thể gọi cơ bản chức năng C fread() hơn hơn một lần trong nỗ lực thu được dưới dạng gần kích thước byte nhất có thể. Ngoài ra lưu ý rằng khi ở chế độ không chặn, ít dữ liệu hơn được yêu cầu có thể được trả về , ngay cả khi không có tham số kích thước được cung cấp.
Tôi tin rằng Guido đã đưa ra quan điểm của mình về việc không thêm f.eof() PERFECTLY CLEAR vì vậy cần sử dụng cách Python!
Điều không rõ ràng với ME, tuy nhiên, nếu đó là thử nghiệm cuối cùng bạn đã đạt EOF nếu bạn nhận được ít hơn byte được yêu cầu từ một lần đọc, nhưng bạn đã nhận được một số.
ví dụ:
with open(filename,'rb') as f:
while True:
s=f.read(size)
l=len(s)
if l==0:
break # it is clear that this is EOF...
if l<size:
break # ? Is receiving less than the request EOF???
Có một lỗi tiềm năng để break
nếu bạn đã nhận được ít hơn các byte được yêu cầu trong một cuộc gọi đến file.read(size)
?
"chẳng hạn như \ r \ n ở chế độ nhị phân" <- điều này có nói "chế độ văn bản" thay vì "chế độ nhị phân" không? Ở chế độ nhị phân, nó sẽ chỉ là một cặp byte giống như bất kỳ byte nào khác, đúng không? –