Chcę uzyskać wartość Content-Length
ze zmiennej meta. Potrzebuję uzyskać rozmiar pliku, który chcę pobrać. Ale ostatnia linia zwraca błąd, obiekt HTTPMessage
nie ma atrybutu getheaders
.Pobierz rozmiar pliku z wartości "Content-Length" z pliku w pythonie 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])
Dla ludzi z Google wygląda na to, że możesz teraz zrobić 'file_size = int (d.getheader ('Content-Length'))' w Pythonie 3 (testowane w 3.4.1). Wydaje się również, że 'd.getheaders()' został dodany. – freshtop
@ freshtop: Zarówno 'd.getheader()' jak i 'd.getheaders()' działają nawet w Pythonie 3.2. Uwaga: OP używa tutaj 'd.info()' zamiast 'd'. 'd.info(). getheader()' i 'd.info(). getheaders()' jest kodem Python 2. Aby obsługiwać zarówno Python 2, jak i 3, można użyć ['d.headers ['Content-Length']'] (http://stackoverflow.com/a/31576222). – jfs