我正在从Web服务器下载整个目录。它工作正常,但我无法想象如何在下载之前获取文件大小以进行比较,如果它在服务器上更新了。这可以像我从FTP服务器下载文件一样吗?
import urllib import re
url = "http://www.someurl.com" f = urllib.urlopen(url) html = f.read() f.close()
f = open ("temp.htm", "w") f.write (html) f.close()
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()
使用returned-urllib-object方法info(),您可以获得有关已审阅文档的各种信息。获取当前Google徽标的示例:
import urllib d = urllib.urlopen("http://www.google.co.uk/logos/olympics08_op
ening.gif")
print d.info()
Content-Type: image/gif
Last-Modified: Thu, 07 Aug 2008 16:20:19 GMT
Expires: Sun, 17 Jan 2038 19:14:07 GMT
Cache-Control: public Date: Fri, 08 Aug 2008 13:40:41 GMT
Server: gws
Content-Length: 20172
Connection: Close
这是一个字典,所以为了获得文件的大小,你可以 urllibobject.info() ['Content-Length']
print f.info()['Content-Length']
要获取本地文件的大小(用于比较),可以使用os.stat()命令:
os.stat("/the/local/file.zip").st_size
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。