2

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())。その後、ファイル名を宣言して、現在のディレクトリにあるファイルをダウンロードする必要があります。フルパス/リンクを使用してファイルを直接ダウンロードするのはどうですか?

4

2 に答える 2

1

このソリューションでは、urllibモジュールの urlopen 関数を使用します。urlopen 関数を使用すると、ftp および http の URL をダウンロードできます。すべてのデータを 1 行で接続して取得できるため、気に入って使用しています。最後の 3 行は、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)
于 2013-10-13T08:51:41.760 に答える