Obtenir la taille d'un fichier avant de le télécharger en Python

Je télécharge un répertoire entier à partir d'un serveur Web. Cela fonctionne bien, mais je ne sais pas comment obtenir la taille du fichier avant le téléchargement pour comparer s'il a été mis à jour sur le serveur ou non. Est-ce que cela peut être fait comme si je téléchargeais le fichier depuis un serveur FTP ?

import urllib
import re

url = 'http://www.someurl.com'

# Download the page locally
f = urllib.urlopen(url)
html = f.read()
f.close()

f = open ('temp.htm', 'w')
f.write (html)
f.close()

# List only the .TXT / .ZIP files
fnames = re.findall('^.*<a href='(w+(?:.txt|.zip)?)'.*$', html, re.MULTILINE)

for fname in fnames:
    print fname, '...'

    f = urllib.urlopen(url + '/' + fname)

    #### Here I want to check the filesize to download or not #### 
    file = f.read()
    f.close()

    f = open (fname, 'w')
    f.write (file)
    f.close()

@Jon : merci pour votre réponse rapide. Cela fonctionne, mais la taille du fichier sur le serveur Web est légèrement inférieure à la taille du fichier téléchargé.

Exemples :

Local Size  Server Size
 2.223.533  2.115.516
   664.603    662.121

Cela a quelque chose à voir avec la conversion CR/LF ?

请先 登录 后评论