网站建设周期与进度安排,大连小程序制作开发,js验证网站,学做网站开发Python中的ftplib模块Python中默认安装的ftplib模块定义了FTP类#xff0c;其中函数有限#xff0c;可用来实现简单的ftp客户端#xff0c;用于上传或下载文件FTP的工作流程及基本操作可参考协议RFC959ftp登陆连接from ftplib import FTP #加载ftp模块ftpFTP() #设置变量ftp…Python中的ftplib模块Python中默认安装的ftplib模块定义了FTP类其中函数有限可用来实现简单的ftp客户端用于上传或下载文件FTP的工作流程及基本操作可参考协议RFC959ftp登陆连接from ftplib import FTP #加载ftp模块ftpFTP() #设置变量ftp.set_debuglevel(2) #打开调试级别2显示详细信息ftp.connect(IP,port) #连接的ftp sever和端口ftp.login(user,password)#连接的用户名密码print ftp.getwelcome() #打印出欢迎信息ftp.cmd(xxx/xxx) #更改远程目录bufsize1024 #设置的缓冲区大小filenamefilename.txt #需要下载的文件file_handleopen(filename,wb).write #以写模式在本地打开文件ftp.retrbinaly(RETR filename.txt,file_handle,bufsize) #接收服务器上文件并写入本地文件ftp.set_debuglevel(0) #关闭调试模式ftp.quit #退出ftpftp相关命令操作ftp.cwd(pathname) #设置FTP当前操作的路径ftp.dir() #显示目录下文件信息ftp.nlst() #获取目录下的文件ftp.mkd(pathname) #新建远程目录ftp.pwd() #返回当前所在位置ftp.rmd(dirname) #删除远程目录ftp.delete(filename) #删除远程文件ftp.rename(fromname, toname)#将fromname修改名称为toname。ftp.storbinaly(STOR filename.txt,file_handel,bufsize) #上传目标文件ftp.retrbinary(RETR filename.txt,file_handel,bufsize)#下载FTP文件自己写的FTP下载客户端如果需要上传客户端请修改下就可以了。#!/usr/local/bin/python2.7# -*- coding: utf-8 -*-使用ftplib编写FTP客户端连接并指定目录下载。__author__ sunday208__date__ 2016-02-25 12:50import ftplib ,socketfrom sys import exitimport osclass DOFTP():def __init__(self):#定义公用变量self.RED_COLOR\033[1;31;48m #红 配置终端输出的颜色self.BLUE_COLOR\033[1;34;48m #红 配置终端输出的颜色self.RES\033[0mdef FTP_DOWN(self,HostIP,SerPort,FtpUser,FtpPasswd,RootDir,Server_files,Local_dir):MyFTP ftplib.FTP()try:MyFTP.connect(hostHostIP,portSerPort,timeout5)print %s*****已经成功连接%s服务器FTP服务%s % (self.BLUE_COLOR,HostIP,self.RES)except (socket.error, socket.gaierror), e:print %s错误无法访问%s FTP服务请检查错误代码为%s%s % (self.RED_COLOR,HostIP,e,self.RES)exit()try:MyFTP.login(userFtpUser,passwdFtpPasswd)print %s*****已经成功登陆%s服务器FTP服务%s % (self.BLUE_COLOR,HostIP,self.RES)print MyFTP.getwelcome()#显示ftp服务器欢迎信息except (ftplib.error_perm), e:print %s错误登陆失败请检查用户名%s“密码%s是否正确错误代码为%s%s % (self.RED_COLOR,FtpUser,FtpPasswd,e,self.RES)exit()MyFTP.cwd(RootDir) #进入FTP目录FTP_files MyFTP.nlst() #取FTP当前目录内容if not Server_files: #如果要下载为空将下载该目录全部内容DownLists FTP_filesprint FTP全部目录%s% DownListselse:#判断指定下载的文件是否在FTP目录中。DownLists [] #下载列表NODownLists [] #没有下载列表for line in Server_files:if line in FTP_files:DownLists.append(line)else:NODownLists.append(line)if NODownLists:print %s在FTP服务器并没有指定文件%s。%s% (self.RED_COLOR,,.join(NODownLists),self.RES)if DownLists:print %s正在从FTP服务器下载如下文件%s。%s% (self.BLUE_COLOR,,.join(DownLists),self.RES)bufsize 1024for line in DownLists:FileName open(Local_dir line,wb).writeMyFTP.retrbinary(RETR %s % os.path.basename(line),FileName,bufsize)MyFTP.quit()print %sFTP已经成功退出。%s% (self.BLUE_COLOR,self.RES)if __name__ __main__:HostIPXXXXX #FTP服务器IP或者域名SerPort21 #FTP端口FtpUserftpuser #FTP用户FtpPasswdXXXXXX #FTP对应用户密码RootDir/test #FTP目录Server_files [1.txt,2.txt,3.txt,4.txt] #下载服务器文件列表#Server_files [] #如果要下载为空将下载该目录全部内容Local_dir D:/testtmp/downfile/ #本地目录#Local_files [a.txt,b.txt] #上传服务器本地文件列表s DOFTP()if os.path.exists(Local_dir) False: #判断本地是否有该文件目录如果没有将创建try:os.mkdir(Local_dir)print %s创建本地目录%s%s% (s.BLUE_COLOR,Local_dir,s.RES)except:print %s无法创建本地目录%s原因是无该盘符或者目录路径有问题程序直接退出%s% (s.RED_COLOR,Local_dir,s.RES)exit() #退出程序s.FTP_DOWN(HostIP,SerPort,FtpUser,FtpPasswd,RootDir,Server_files,Local_dir)执行结果如下