Tôi muốn nhận giá trị Content-Length
từ biến meta. Tôi cần phải nhận được kích thước của tập tin mà tôi muốn tải về. Nhưng dòng cuối cùng trả về lỗi, đối tượng HTTPMessage
không có thuộc tính getheaders
.Lấy kích thước tệp từ giá trị "Độ dài nội dung" từ tệp trong python 3.2
import urllib.request
import http.client
#----HTTP HANDLING PART----
url = "http://client.akamai.com/install/test-objects/10MB.bin"
file_name = url.split('/')[-1]
d = urllib.request.urlopen(url)
f = open(file_name, 'wb')
#----GET FILE SIZE----
meta = d.info()
print ("Download Details", meta)
file_size = int(meta.getheaders("Content-Length")[0])
Vì lợi ích của mọi người từ Google, có vẻ như bây giờ bạn có thể làm 'file_size = int (d.getheader ('Content-Length'))' trong Python 3 (được thử nghiệm trong 3.4.1). 'd.getheaders()' cũng dường như đã được thêm vào. – freshtop
@freshtop: Cả hai công cụ 'd.getheader()' và 'd.getheaders()' đều hoạt động ngay cả trên Python 3.2. Lưu ý: OP sử dụng 'd.info()' thay vì 'd' tại đây. 'd.info(). getheader()' và 'd.info(). getheaders()' là mã Python 2. Để hỗ trợ cả Python 2 và 3, ['d.headers ['Content-Length']' có thể được sử dụng] (http://stackoverflow.com/a/31576222). – jfs