python從FTP下載檔案
阿新 • • 發佈:2018-12-29
#!/usr/bin/python # -*- coding: utf-8 -*- """ FTP常用操作 """ from ftplib import FTP import os class FTP_OP(object): def __init__(self, host, username, password, port): """ 初始化ftp :param host: ftp主機ip :param username: ftp使用者名稱 :param password: ftp密碼 :param port: ftp埠 (預設21)""" self.host = host self.username = username self.password = password self.port = port def ftp_connect(self): """ 連線ftp :return: """ ftp = FTP() ftp.set_debuglevel(0) # 不開啟除錯模式 ftp.connect(host=self.host, port=self.port) # 連線ftp ftp.login(self.username, self.password) #登入ftp return ftp def download_file(self, ftp_file_path, dst_file_path): """ 從ftp下載檔案到本地 :param ftp_file_path: ftp下載檔案路徑 :param dst_file_path: 本地存放路徑 :return: """ buffer_size = 10240 #預設是8192 ftp = self.ftp_connect() print ftp.getwelcome() #顯示登入ftp資訊file_list = ftp.nlst(ftp_file_path) for file_name in file_list: ftp_file = os.path.join(ftp_file_path, file_name) write_file = os.path.join(dst_file_path, file_name) print file_name if file_name.find('.jpg')>-1 and not os.path.exists(write_file): print "file_name:"+file_name #ftp_file = os.path.join(ftp_file_path, file_name) #write_file = os.path.join(dst_file_path, file_name) with open(write_file, "wb") as f: ftp.retrbinary('RETR {0}'.format(ftp_file), f.write, buffer_size) f.close() ftp.quit() if __name__ == '__main__': host = "10.201.xx.xx" username = "JKT" password = "E2TS" port = "9999" ftp_file_path = "/upload/20160726" dst_file_path = "/home/gdmt/mastercom/py/tmp" ftp = FTP_OP(host=host, username=username, password=password, port=port) ftp.download_file(ftp_file_path=ftp_file_path, dst_file_path=dst_file_path)