使用Python中的ftplib,您可以下载文件,但似乎只能使用文件名(而不是完整的文件路径)。以下代码成功下载了所请求的代码:
import ftplib
ftp=ftplib.FTP("ladsweb.nascom.nasa.gov")
ftp.login()
ftp.cwd("/allData/5/MOD11A1/2002/001")
ftp.retrbinary('RETR MOD11A1.A2002001.h00v08.005.2007079015634.hdf',open("MOD11A1.A2002001.h00v08.005.2007079015634.hdf",'wb').write)
如您所见,首先建立站点登录(ftp.login()
),然后设置当前目录(ftp.cwd()
)。之后,您需要声明文件名以下载驻留在当前目录中的文件。使用文件的完整路径/链接直接下载该文件如何?
发布于 2013-10-12 09:59:29
import ftplib
ftp = ftplib.FTP("ladsweb.nascom.nasa.gov")
ftp.login()
a = 'allData/5/MOD11A1/2002/001/MOD11A1.A2002001.h00v08.005.2007079015634.hdf'
fhandle = open('ftp-test', 'wb')
ftp.retrbinary('RETR ' + a, fhandle.write)
fhandle.close()
发布于 2013-10-13 08:51:41
该解决方案使用乌尔利卜模块中的urlopen函数。urlopen函数将允许您下载ftp和http urls。我喜欢使用它,因为您可以在一行中连接和获取所有数据。最后三行从url中提取文件名,然后将数据保存到该文件名中。
from urllib import urlopen
url = 'ftp://ladsweb.nascom.nasa.gov/allData/5/MOD11A1/2002/001/MOD11A1.A2002001.h00v08.005.2007079015634.hdf'
data = urlopen(url).read()
filename = url.split('/')[-1]
with open(filename, 'wb') as f:
f.write(data)
https://stackoverflow.com/questions/19332553
复制相似问题