1. 程式人生 > >python從FTP下載檔案

python從FTP下載檔案

#!/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)