python從ftp下載數(shù)據(jù)保存實(shí)例
《hadoop權(quán)威指南》的天氣數(shù)據(jù)可以在ftp://ftp3.ncdc.noaa.gov/pub/data/noaa下載,在網(wǎng)上看到這個(gè)數(shù)據(jù)好開心,打開ftp發(fā)現(xiàn)個(gè)問題,呀呀,這么多文件啊,我一個(gè)個(gè)去點(diǎn)另存為,得點(diǎn)到啥時(shí)候啊,迅雷應(yīng)該有批量下載,只是我沒找到,估計(jì)是我瀏覽器把迅雷禁掉了,干脆自己用python寫一個(gè)實(shí)現(xiàn)下載好了,網(wǎng)上早了一下,發(fā)現(xiàn)很簡(jiǎn)單啊
#!/usr/bin/python
#-*- coding: utf-8 -*-
from ftplib import FTP
def ftpconnect():
ftp_server = 'ftp3.ncdc.noaa.gov'
username = ''
password = ''
ftp=FTP()
ftp.set_debuglevel(2) #打開調(diào)試級(jí)別2,顯示詳細(xì)信息
ftp.connect(ftp_server,21) #連接
ftp.login(username,password) #登錄,如果匿名登錄則用空串代替即可
return ftp
def downloadfile():
ftp = ftpconnect()
#print ftp.getwelcome() #顯示ftp服務(wù)器歡迎信息
datapath = "/pub/data/noaa/"
year=1911
while year<=1930:
path=datapath+str(year)
li = ftp.nlst(path)
for eachFile in li:
localpaths = eachFile.split("/")
localpath = localpaths[len(localpaths)-1]
localpath='weatherdata/'+str(year)+'--'+localpath#把日期放在最前面,方便排序
bufsize = 1024 #設(shè)置緩沖塊大小
fp = open(localpath,'wb') #以寫模式在本地打開文件
ftp.retrbinary('RETR ' + eachFile,fp.write,bufsize) #接收服務(wù)器上文件并寫入本地文件
year=year+1
ftp.set_debuglevel(0) #關(guān)閉調(diào)試
fp.close()
ftp.quit() #退出ftp服務(wù)器
if __name__=="__main__":
downloadfile()
相關(guān)文章
自學(xué)python求已知DNA模板的互補(bǔ)DNA序列
這篇文章主要為大家介紹了自學(xué)python求已知DNA模板的互補(bǔ)DNA序列的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python實(shí)現(xiàn)為圖片批量添加隨機(jī)水印
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)為圖片批量添加隨機(jī)水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
Python3連接MySQL(pymysql)模擬轉(zhuǎn)賬實(shí)現(xiàn)代碼
這篇文章主要介紹了Python3連接MySQL(pymysql)模擬轉(zhuǎn)賬實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Python中2種常用數(shù)據(jù)可視化庫Bokeh和Altair使用示例詳解
本文對(duì)Python中兩個(gè)常用的數(shù)據(jù)可視化庫?Bokeh?和?Altair?進(jìn)行了比較和探討,通過對(duì)它們的特點(diǎn)、優(yōu)缺點(diǎn)以及使用示例的詳細(xì)分析,讀者可以更好地了解這兩個(gè)庫的功能和適用場(chǎng)景,從而更好地選擇合適的庫來進(jìn)行數(shù)據(jù)可視化工作,感興趣的朋友跟隨小編一起看看吧2024-04-04
Python計(jì)算一個(gè)給定時(shí)間點(diǎn)前一個(gè)月和后一個(gè)月第一天的方法
這篇文章主要介紹了Python計(jì)算一個(gè)給定時(shí)間點(diǎn)前一個(gè)月和后一個(gè)月第一天的方法,涉及Python使用datetime模塊計(jì)算日期時(shí)間的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Python中實(shí)現(xiàn)定時(shí)任務(wù)常見的幾種方式
在Python中,實(shí)現(xiàn)定時(shí)任務(wù)是一個(gè)常見的需求,無論是在自動(dòng)化腳本、數(shù)據(jù)處理、系統(tǒng)監(jiān)控還是其他許多應(yīng)用場(chǎng)景中,Python提供了多種方法來實(shí)現(xiàn)定時(shí)任務(wù),包括使用標(biāo)準(zhǔn)庫、第三方庫以及系統(tǒng)級(jí)別的工具,本文將詳細(xì)介紹幾種常見的Python定時(shí)任務(wù)實(shí)現(xiàn)方式2024-08-08
python?rpyc客戶端調(diào)用服務(wù)端方法的注意說明
這篇文章主要介紹了python?rpyc客戶端調(diào)用服務(wù)端方法的注意說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

