开发者社区> 问答> 正文

在使用Python下载之前获取文件大小?

我正在从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()

展开
收起
游客6qcs5bpxssri2 2019-09-07 21:56:41 863 0
1 条回答
写回答
取消 提交回答
  • 使用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

    2019-09-07 21:57:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载