由于做实验的需要到一些公开的数据集上去下载图片,所需的图片实例如下所示:
由于该数据集比较大 ,并且迅雷批量下载时有限制 ,一次不可以超过1000个文件 ,太不人性化了 ,于是决定用刚学的python来实现批量下载。
首先分析该数据集的目录结构,如下:
所以 只要到达/pub/PETS2001/DATASET5/TESTING/CAMERA1_JPEGS/ 目录下即可下载相应的图片。
我们首先分析该ftp服务器的ip
得到ip地址为134.225.220.39 。这样一来 批量下载就和单次下载一样啦,无非就是循环啦,完整代码如下:
#-*-coding:utf-8-*-
import os
from ftplib import FTP
ftp = FTP()
ftp.set_debuglevel(2)
ftp.connect("134.225.220.39",'21')
ftp.login('','');
Path = "/pub/PETS2001/DATASET5/TESTING/CAMERA1_JPEGS/"
ftp.cwd(Path)
for i in range(1,2868):
print '----------Now we are download picture %04d.jpg------------'%i
LoaclFile = "D:\\s\\%04d.jpg"%(i)
bufsize = 1024
file=open(LoaclFile,"wb")
ftp.retrbinary('RETR %s' %os.path.basename(LoaclFile),file.write,bufsize)
ftp.set_debuglevel(0)
file.close()
ftp.quit()
print 'ftp down ok'
接下来就慢慢等待下载咯,发个截图如下:
下载完成后的示例: