亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

Python 操作FTP文件,上傳下載文件

來源:小琰子 發(fā)布時(shí)間:2018-11-03 16:03:19 閱讀量:1245


#!C:/Python27

#coding=utf-8

 

from ctypes import *

import os

import sys

import ftplib

 

 

class myFtp:

    ftp = ftplib.FTP()

    bIsDir = False

    path = ""

 

    def __init__(self, host, port='21'):

        # self.ftp.set_debuglevel(2) #打開調(diào)試級別2,顯示詳細(xì)信息

        # self.ftp.set_pasv(0)      #0主動模式 1 #被動模式

        self.ftp.connect(host, port)

 

    def Login(self, user, passwd):

        self.ftp.login(user, passwd)

        print self.ftp.welcome

 

    def DownLoadFile(self, LocalFile, RemoteFile):#下載當(dāng)個(gè)文件

        file_handler = open(LocalFile, 'wb')

        print  file_handler

        self.ftp.retrbinary("RETR %s" % (RemoteFile), file_handler.write)#接收服務(wù)器上文件并寫入本地文件

        file_handler.close()

        return True

 

    def UpLoadFile(self, LocalFile, RemoteFile):

        if os.path.isfile(LocalFile) == False:

            return False

        file_handler = open(LocalFile, "rb")

        self.ftp.storbinary('STOR %s' % RemoteFile, file_handler, 4096)#上傳文件

        file_handler.close()

        return True

 

    def UpLoadFileTree(self, LocalDir, RemoteDir):

        if os.path.isdir(LocalDir) == False:

            return False

        print "LocalDir:", LocalDir

        LocalNames = os.listdir(LocalDir)

        print "list:", LocalNames

        print RemoteDir

        self.ftp.cwd(RemoteDir)

        for Local in LocalNames:

            src = os.path.join(LocalDir, Local)

            if os.path.isdir(src):

                self.UpLoadFileTree(src, Local)

            else:

                self.UpLoadFile(src, Local)

 

        self.ftp.cwd("..")

        return

 

    def DownLoadFileTree(self, LocalDir, RemoteDir):#下載整個(gè)目錄下的文件

        print "remoteDir:", RemoteDir

        if os.path.isdir(LocalDir) == False:

            os.makedirs(LocalDir)

        self.ftp.cwd(RemoteDir)

        RemoteNames = self.ftp.nlst()

        print "RemoteNames", RemoteNames

        print self.ftp.nlst("/del1")

        for file in RemoteNames:

            Local = os.path.join(LocalDir, file)

            if self.isDir(file):

                self.DownLoadFileTree(Local, file)

            else:

                self.DownLoadFile(Local, file)

        self.ftp.cwd("..")

        return

 

    def show(self, list):

        result = list.lower().split(" ")

        if self.path in result and "<dir>" in result:

            self.bIsDir = True

 

    def isDir(self, path):

        self.bIsDir = False

        self.path = path

        # this ues callback function ,that will change bIsDir value

        self.ftp.retrlines('LIST', self.show)

        return self.bIsDir

 

    def close(self):

        self.ftp.quit()

 

 

if __name__ == "__main__":

    ftp = myFtp('10.116.118.80')

    ftp.Login('778735', '123456')#登錄,如果匿名登錄則用空串代替即可

    ftp.DownLoadFileTree('E:/study', '/owt/20170504')  # 從目標(biāo)目錄下載到本地目錄E盤

    #ftp.UpLoadFileTree('E:/study', '/owt/20170504')

    #ftp.DownLoadFile('E:/study/r2101-ROOT-20170428.zip','/owt/20170504/r2101-ROOT-20170428.zip')

    #ftp.UpLoadFile('E:/study/bak.txt','/owt/20170504/bak.txt')

    ftp.close()

    print "ok!"


--------------------- 

作者:小琰子 

來源:CSDN 

原文:https://blog.csdn.net/qq_18808965/article/details/78031870 

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!


標(biāo)簽: 服務(wù)器搭建
分享:
評論:
你還沒有登錄,請先