ホームページ  >  記事  >  バックエンド開発  >  Pythonでftpからデータをダウンロードして保存する例

Pythonでftpからデータをダウンロードして保存する例

WBOY
WBOYオリジナル
2016-06-16 08:46:191129ブラウズ

「Hadoop Authoritative Guide」の気象データは、ftp://ftp3.ncdc.noaa.gov/pub/data/noaa からダウンロードできます。このデータをインターネット上で見ることができてとてもうれしいです。問題が見つかりました。ファイルが多すぎて、[名前を付けて保存] を 1 つずつクリックしました。Xunlei にはバッチ ダウンロードがあるはずですが、私のブラウザでは Xunlei が無効になっているようです。はい、オンラインで調べたところ、非常に簡単であることがわかりました。

コードをコピー コードは次のとおりです:

#!/usr/bin/python
#-*-コーディング: utf -8 -*-

ftplib インポート FTP から

def ftpconnect():
ftp_server = 'ftp3.ncdc.noaa.gov'
ユーザー名 = ''
パスワード = ''
ftp=FTP()
ftp.set_debuglevel (2) #デバッグレベル2を開いて詳細情報を表示
ftp.connect(ftp_server,21) #Connect
ftp.login(username,password) #ログイン、匿名でログインする場合は空文字列を使用してください代わりに
return ftp

def downloadfile():
ftp = ftpconnect()
#print ftp.getwelcome() #ftp サーバーのウェルカム メッセージを表示
datapath = "/pub/ data/ noaa/"
year=1911
while year<=1930:
path=datapath+str(year)
li 内の各ファイルの li = ftp.nlst(path)
:
localpaths = eachFile.split("/")
localpath = localpaths[len(localpaths)-1]
localpath='weatherdata/'+str(year)+'--'+localpath#Put日付 先頭にあり、ソートに便利
bufsize = 1024 #バッファブロックサイズを設定
fp = open(localpath,'wb') #ファイルを書き込みモードでローカルに開きます
ftp.retrbinary('RETR ' + eachFile ,fp.write,bufsize) #サーバー上のファイルを受信し、ローカル ファイルに書き込みます
year=year+1
ftp.set_debuglevel(0) #デバッグを閉じる
fp.close()
ftp.quit() #ftp サーバーを終了します


if __name__=="__main__":
downloadfile()

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。