python ftplib模块详解_python ftplib模块-阿里云开发者社区

#coding:utf-8

from ctypes import *

importosimportsysimportftplibclassmyFtp:

ftp=ftplib.FTP()

bIsDir=False

path= ""

def __init__(self, host, port='21'):#self.ftp.set_debuglevel(2) #打开调试级别2,显示详细信息

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

self.ftp.connect( host, port )defLogin(self, user, passwd):

self.ftp.login( user, passwd )printself.ftp.welcomedefDownLoadFile(self, LocalFile, RemoteFile):

file_handler= open( LocalFile, 'wb')

self.ftp.retrbinary("RETR %s" %( RemoteFile ), file_handler.write )

file_handler.close()returnTruedefUpLoadFile(self, LocalFile, RemoteFile):if os.path.isfile( LocalFile ) ==False:returnFalse

file_handler= open(LocalFile, "rb")

self.ftp.storbinary('STOR %s'%RemoteFile, file_handler, 4096)

file_handler.close()returnTruedefUpLoadFileTree(self, LocalDir, RemoteDir):if os.path.isdir(LocalDir) ==False:returnFalseprint "LocalDir:", LocalDir

LocalNames=os.listdir(LocalDir)print "list:", LocalNamesprintRemoteDir

self.ftp.cwd( RemoteDir )for Local inLocalNames:

src=os.path.join( LocalDir, Local)ifos.path.isdir( src ): self.UpLoadFileTree( src, Local )else:

self.UpLoadFile( src, Local )

self.ftp.cwd("..")return

defDownLoadFileTree(self, LocalDir, RemoteDir):print "remoteDir:", RemoteDirif os.path.isdir( LocalDir ) ==False:

os.makedirs( LocalDir )

self.ftp.cwd( RemoteDir )

RemoteNames=self.ftp.nlst()print "RemoteNames", RemoteNamesprint self.ftp.nlst("/del1")for file inRemoteNames:

Local=os.path.join( LocalDir, file )ifself.isDir( file ):

self.DownLoadFileTree( Local, file )else:

self.DownLoadFile( Local, file )

self.ftp.cwd("..")return

defshow(self, list):

result= list.lower().split( " ")if self.path in result and "

self.bIsDir=TruedefisDir(self, path):

self.bIsDir=False

self.path=path#this ues callback function ,that will change bIsDir value

self.ftp.retrlines( 'LIST', self.show )returnself.bIsDirdefclose(self):

self.ftp.quit()if __name__ == "__main__":

ftp= myFtp('*****')

ftp.Login('***','***')

ftp.DownLoadFileTree('del', '/del1')#ok

ftp.UpLoadFileTree('del', "/del1")

ftp.close()print "ok!"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值