python ftp模块_python ftplib模块

#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) #打开调试级别2,显示详细信息

#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):

file_handler = open( LocalFile, 'wb' )

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

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):

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 "

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('*****')

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、付费专栏及课程。

余额充值