Я хочу получить размер файла http: // .., прежде чем загрузить его. Я не знаю, как использовать http-запрос.
Спасибо!
import urllib2 f = urllib2.urlopen("http://your-url") size= f.headers["Content-Length"] print size
Метод HTTP HEAD был изобретен для подобных сценариев (желающих знать данные об ответе без извлечения самого ответа). Если сервер возвращает заголовок Content-Length (и поддерживает HEAD), тогда вы можете узнать размер файла (в октетах), посмотрев на возвращенную Content-Length.
HEAD
Вот полный ответ:
import urllib2 f = urllib2.urlopen ("http://your-url") if "Content-Length" in f.headers: size = int (f.headers["Content-Length"]) else: size = len (f.read ()); print size
Не все страницы имеют заголовок длины содержимого. В этом случае единственный вариант - прочитать всю страницу:
len(urllib2.urlopen('http://www.google.com').read());