Những câu trả lời khác làm việc cho các tập tin thực, nhưng nếu bạn cần một cái gì đó mà làm việc cho "các đối tượng tập tin giống như", hãy thử này:
# f is a file-like object.
f.seek(0, os.SEEK_END)
size = f.tell()
Nó hoạt động cho các tập tin thực tế và StringIO, trong thử nghiệm hạn chế của tôi. (Python 2.7.3.) API "đối tượng tập tin" không thực sự là một giao diện nghiêm ngặt, tất nhiên, nhưng API documentation gợi ý rằng các đối tượng giống như tệp phải hỗ trợ seek()
và tell()
.
Sửa
Một điểm khác biệt giữa điều này và os.stat()
là bạn có thể stat()
một tập tin ngay cả khi bạn không có quyền để đọc nó. Rõ ràng cách tiếp cận tìm kiếm/nói sẽ không hoạt động trừ khi bạn có quyền đọc.
Chỉnh sửa 2
Theo gợi ý của Jonathon của, đây là một phiên bản hoang tưởng. (Phiên bản trên lá con trỏ tập tin ở phần cuối của tập tin, vì vậy nếu bạn đã cố gắng đọc từ tập tin, bạn sẽ nhận được zero byte trở lại!)
Nguồn
2013-09-29 15:41:10
Đây có phải là byte không? Hoặc bit? –
Điều này là theo byte –
@HaikalNashuha Tôi biết không có hệ thống tệp nào cho phép các tệp phân đoạn byte –