Ricky Hao

Python 之 文件下载

今天想要下载一个网站的日志文件,但是log很多,而且名字都不大相同。所以先要能够写一个Python脚本来自动下载。

因为我使用的是Python 3,所以我用的是urllib.request库。
我们需要用到以下几个函数:

urllib.request.urlopen();    #用来的到文件的信息
urllib.request.urlopen().getheader();    #提取其中的HTTP头文件

代码大致如下:

import urllib.request                   #导入库

file_handle=open('1.txt','wb');         #打开一个文件
url='www.example.com/1.txt'             #设置url
filename=url.split('/')[-1]             #用/来分割url,并且提取最后一部分为文件名(1.txt)

u=urllib.request.urlopen(url);          #得到文件信息
size=u.getheader('Content-Length');     #得到文件大小

file_size_dl=0;                         #先设置以下载的文件大小为0
block_buffer=8192;                      #将块大小设置为8192
    
while True:
    buffer=u.read(block_buffer);        #从u中读取8192大小的数据进缓冲区
    if not buffer:
        break;                          #若是缓冲区内没数据则跳出循环
    file_size_dl+=len(buffer);          #统计已下载的数据
    file_handle.write(buffer);          #将缓冲区数据写入文件
        
file_handle.close();                    #关闭文件

这样,就可以将文件下载下来了(不过我实测经常会下到一半失败。。。)

点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据