自己写的python操作FTP服务器(未完,没写下载操作)

来源:互联网 发布:mac qq拼音删除 编辑:程序博客网 时间:2024/05/29 13:11
# -*- coding: utf-8 -*-import ftplibimport osclass XMyFtp:    time_out = 30    ftp_user = "yxjk"    ftp_pwd = "yxjk"    ftp_host = "192.168.10.95"    ftp_port = 21    ftp = None#FTP初始化    def __init__(self):        self.ftp = ftplib.FTP()        try:            self.ftp.connect(self.ftp_host,self.ftp_port)        except:            print "无法连接远程服务器"            exit(-1)        try:            self.ftp.login(self.ftp_user,self.ftp_pwd)        except:            print "用户名、密码不正确"            exit(-1)        self.ftp.set_pasv(False)        print self.ftp.getwelcome()#获取FTP服务器默认路径下的目录列表    def GetRemoteRootDir(self):        pwdPath = self.ftp.pwd()  #获取FTP当前路径        if pwdPath == '/' or pwdPath == './':            return self.ftp.nlst()        else:            self.ftp.cwd('./')            return self.ftp.nlst()    #上传文件到FTP服务器    #注意:file_path不可为目录,必须为带有文件名的路径    def UploadFile(self,local_path,ftp_path):        if(os.path.exists(local_path)):            try:                self.ftp.storbinary('STOR %s'%ftp_path, open(local_path,'rb'))                print "文件%s上传成功" % local_path            except:                print "文件%s上传失败" % local_path        else:            print "目标文件不存在"#上传目录到FTP服务器    def UploadDir(self,local_dir,ftp_dir):        upload_dir = None        self.ftp.cwd('/')        if(os.path.isabs(local_dir)):            dir,file = os.path.split(local_dir)            upload_dir = file        else:            upload_dir = local_dir        try:            self.ftp.cwd(ftp_dir)        except:            try:                self.ftp.mkd(ftp_dir) #首次创建目录会有异常,但目录却会创建成功,在捕获异常之后尝试切换目录            except:                self.ftp.cwd(ftp_dir)        remote_dir = ftp_dir.lstrip('/');        if(self.ftp.pwd().lstrip('/') == remote_dir):            remote_dir = remote_dir.split('/')            remote_dir = remote_dir[len(remote_dir)-1]            self.ftp.cwd('/')            if(remote_dir == upload_dir):                for file in os.listdir(local_dir):                    if os.path.isdir(file):                        self.UploadDir(local_dir+'/'+file,ftp_dir)                    else:                        self.UploadFile(local_dir+'/'+file,ftp_dir+'/'+file)            else:                self.UploadDir(local_dir,ftp_dir+'/'+remote_dir)        else:            print "远程目录非法"        #print self.ftp.pwd()        self.ftp.close()#myftp = XMyFtp()#myftp.GetRemoteDir()#myftp.UploadFile('e:/pydev/Eobject/upload/d.txt','inc/upload/d.txt')#myftp.UploadDir("e:/pydev/Eobject/upload",'inc/upload')
0 0
原创粉丝点击