Python写自动化之Ftp上传下载

之前,有篇文章介绍了http文件的下载,有些情况下,我们会使用FTP服务器存储文件,这时,在脚本中,我们就会涉及到FTP的上传下载操作了。

首先看下FTP文件的上传操作,整个过程大致可以拆分成登陆、打开本地文件、文件传输、退出几步,看下代码

try: f = FTP(server) try:f.login(user, pwd)localFile = open(localPath, "rb")f.storbinary("STOR %s" % srcFile, localFile)localFile.close()f.quit()return True except:f.quit()return Falseexcept: return False文件下载的过程与上传过程基本一致,大体分为登陆、切换到ftp目录,,打开本地文件、传输文件、退出几步

ftp = FTP()ftp.connect(server, '21')ftp.login(user, pwd)ftp.cwd(os.path.dirname(srcFile).lstrip("/")) #选择操作目录file_handler = open(savePath,'wb') #以写模式在本地打开文件ftp.retrbinary('RETR %s' % os.path.basename(srcFile),file_handler.write)#接收服务器上文件并写入本地文件file_handler.close()ftp.quit()这样,FTP文件的上传下载过程就完成了

为了使用起来方便,我们再进行一次封装操作,代码如下:

def FtpUpload(localPath, ftpPath, user="", pwd=""):"""| ##@函数目的:从ftp上传文件"""dirs = str(ftpPath).split("/")if len(dirs) < 4:return Falseif str(dirs[2]).count(".") != 3:return Falseserver = dirs[2]srcFile = ""for item in dirs[3:]:srcFile += "/" + str(item)try:f = FTP(server)try:f.login(user, pwd)localFile = open(localPath, "rb")f.storbinary("STOR %s" % srcFile, localFile)localFile.close()f.quit()return Trueexcept:f.quit()return Falseexcept:return Falsedef FtpDownLoad(ftpFile, savePath, user="", pwd=""):dirs = str(ftpFile).split("/")if len(dirs) < 4:return Falseserver = dirs[2]srcFile = ""for item in dirs[3:]:srcFile += "/" + str(item)try:ftp = FTP()ftp.connect(server, '21')ftp.login(user, pwd)ftp.cwd(os.path.dirname(srcFile).lstrip("/")) #选择操作目录file_handler = open(savePath,'wb') #以写模式在本地打开文件ftp.retrbinary('RETR %s' % os.path.basename(srcFile),file_handler.write)#接收服务器上文件并写入本地文件file_handler.close()ftp.quit()except:print traceback.format_exc()

“人”的结构就是相互支撑,“众”人的事业需要每个人的参与。

Python写自动化之Ftp上传下载

相关文章:

你感兴趣的文章:

标签云: