通過python下載FTP上的文件夾的實(shí)現(xiàn)代碼
更新時(shí)間:2013年02月10日 10:29:58 作者:
使用python下載FTP上的文件夾的代碼,有需要的朋友不妨看看
復(fù)制代碼 代碼如下:
# -*- encoding: utf8 -*-
import os
import sys
import ftplib
class FTPSync(object):
def __init__(self):
self.conn = ftplib.FTP('10.22.33.46', 'user', 'pass')
self.conn.cwd('/') # 遠(yuǎn)端FTP目錄
os.chdir('/data/') # 本地下載目錄
def get_dirs_files(self):
u''' 得到當(dāng)前目錄和文件, 放入dir_res列表 '''
dir_res = []
self.conn.dir('.', dir_res.append)
files = [f.split(None, 8)[-1] for f in dir_res if f.startswith('-')]
dirs = [f.split(None, 8)[-1] for f in dir_res if f.startswith('d')]
return (files, dirs)
def walk(self, next_dir):
print 'Walking to', next_dir
self.conn.cwd(next_dir)
try:
os.mkdir(next_dir)
except OSError:
pass
os.chdir(next_dir)
ftp_curr_dir = self.conn.pwd()
local_curr_dir = os.getcwd()
files, dirs = self.get_dirs_files()
print "FILES: ", files
print "DIRS: ", dirs
for f in files:
print next_dir, ':', f
outf = open(f, 'wb')
try:
self.conn.retrbinary('RETR %s' % f, outf.write)
finally:
outf.close()
for d in dirs:
os.chdir(local_curr_dir)
self.conn.cwd(ftp_curr_dir)
self.walk(d)
def run(self):
self.walk('.')
def main():
f = FTPSync()
f.run()
if __name__ == '__main__':
main()
相關(guān)文章
python實(shí)現(xiàn)ModBusTCP協(xié)議的client功能
Modbus TCP 是一種基于 TCP/IP 協(xié)議棧的 Modbus 通信協(xié)議,它用于在工業(yè)自動(dòng)化系統(tǒng)中進(jìn)行設(shè)備之間的通信,只要通過pymodbus或pyModbusTCP任意模塊就可以實(shí)現(xiàn),本文采用pymodbus,感興趣的朋友跟隨小編一起看看吧2023-10-10Python實(shí)現(xiàn)捕獲異常發(fā)生的文件和具體行數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)捕獲異常發(fā)生的文件和具體行數(shù)。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-04-04關(guān)于Theano和Tensorflow多GPU使用問題
這篇文章主要介紹了關(guān)于Theano和Tensorflow多GPU使用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-06-06python進(jìn)階教程之循環(huán)對(duì)象
這篇文章主要介紹了python進(jìn)階教程之循環(huán)對(duì)象,循環(huán)對(duì)象是這樣一個(gè)對(duì)象,它包含有一個(gè)next()方法,這個(gè)方法的目的是進(jìn)行到下一個(gè)結(jié)果,需要的朋友可以參考下2014-08-08PyCharm的設(shè)置方法和第一個(gè)Python程序的建立
今天小編就為大家分享一篇PyCharm的設(shè)置方法和第一個(gè)Python程序的建立,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-01-01Python input函數(shù)實(shí)現(xiàn)獲取鍵盤輸入的字符串流程講解
這篇文章主要介紹了Python input函數(shù)實(shí)現(xiàn)獲取鍵盤輸入的字符串流程,input()是Python的內(nèi)置函數(shù),用于從控制臺(tái)讀取用戶輸入的內(nèi)容。input()函數(shù)總是以字符串的形式來(lái)處理用戶輸入的內(nèi)容,所以用戶輸入的內(nèi)容可以包含任何字符2023-01-01