对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

访问FTP,无非两件事情:upload和download,最近在项目中需要从ftp下载大量文件,然后我就试着去实验自己的ftp操作类,如下(PS:此段有问题,别复制使用,可以参考去试验自己的ftp类!)

# @param Python之FTP传输

# @author 编程之家 jb51.cc|jb51.cc

import os

from ftplib import FTP

class FTPSync():

def __init__(self,host,usr,psw,log_file):

self.host = host

self.usr = usr

self.psw = psw

self.log_file = log_file

def __ConnectServer(self):

try:

self.ftp = FTP(self.host)

self.ftp.login(self.usr,self.psw)

self.ftp.set_pasv(False)

return True

except Exception:

return False

def __CloseServer(self):

try:

self.ftp.quit()

return True

except Exception:

return False

def __CheckSizeEqual(self,remoteFile,localFile):

try:

remoteFileSize = self.ftp.size(remoteFile)

localFileSize = os.path.getsize(localFile)

if localFileSize == remoteFileSize:

return True

else:

return False

except Exception:

return None

def __DownloadFile(self,localFile):

try:

self.ftp.cwd(os.path.dirname(remoteFile))

f = open(localFile,'wb')

remoteFileName = 'RETR ' + os.path.basename(remoteFile)

self.ftp.retrbinary(remoteFileName,f.write)

if self.__CheckSizeEqual(remoteFile,localFile):

self.log_file.write('The File is downloaded successfully to %s' + '\n' % localFile)

return True

else:

self.log_file.write('The localFile %s size is not same with the remoteFile' + '\n' % localFile)

return False

except Exception:

return False

def __DownloadFolder(self,remoteFolder,localFolder):

try:

fileList = []

self.ftp.retrlines('NLST',fileList.append)

for remoteFile in fileList:

localFile = os.path.join(localFolder,remoteFile)

return self.__DownloadFile(remoteFile,localFile)

except Exception:

return False

def SyncFromFTP(self,localFolder):

self.__DownloadFolder(remoteFolder,localFolder)

self.log_file.close()

self.__CloseServer()

# End www.jb51.cc

python ftp上传_Python FTP传输的简单示例相关推荐

  1. python分片上传_python上传文件到oss

    基础环境 # +++++ 阿里云OSS开发指南里都有详细的步骤,在这里整理了一下自己需要的东西 # 确定开发环境,centOS默认安装了python2.7 # python -V # 安装python ...

  2. python批量上传_python批量上传

    环境 python 3.6 你换成其他3x的版本也没关系 flask 项目很小,主要是演示一下使用flask接收页面上传的文件的方法.项目包含一个批量示范页面. 演示页面文件,为了方便演示.我把htm ...

  3. python 头条 上传_Python+selenium自动化之文件上传

    邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收和编写,本篇介绍邮件的附件上传.还是以腾讯企业邮箱为例,进行实际案例操作. 文件上传的实现大体分为两种,一种是input标签,一种非inp ...

  4. python分片上传_python 分片上传大格式

    form-data类型 def multipart_producer(boundary, filename): """构建 multipart, 返回 yield, 实现 ...

  5. python监控windows日志_Python 监控日志的简单示例

    这篇文章主要为大家详细介绍了Python 监控日志的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 一个简易的 ...

  6. python文本处理实例_Python 文件处理的简单示例

    这篇文章主要为大家详细介绍了Python 文件处理的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 相关的AP ...

  7. python读写文件实例_python读写文件的简单示例

    这篇文章主要为大家详细介绍了python读写文件的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 首先看一个例子: # 来自www.512 ...

  8. python 头条 上传_python 简单爬取今日头条热点新闻(一)

    今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...

  9. 怎样用python计算π的值_Python 计算 π 值的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! π是一个无数人追随的真正的神奇数字.我不是很清楚一个永远重复的无理数的迷人之处.在我看来,我乐于计 ...

最新文章

  1. 群同态基本定理证明_近世代数(3)——群的基本性质
  2. Lua编译实践1-词法分析:
  3. mac系统学习和快捷键
  4. 个人博客mysql 建表与数据测试
  5. python视频处理为卡通风格_使用python代码将照片变成卡通图片
  6. 什么是分布式_什么是分布式系统,如何学习分布式系统?
  7. Image Gallery
  8. Repast HPC 2.0安装及实例模型运行总结
  9. 基本农田卫星地图查询_水经注万能地图下载器软件主界面功能说明
  10. 使用css让div半透明
  11. Json汉化-使用JavaScript和百度翻译API免费实现Json文件的汉化
  12. UT000020: Connection terminated as request was larger than 10485760
  13. sql server为什么建表时在表名前加''[dbo]''
  14. 查询快递 教你一个方法按照物流途径城市筛选签收地
  15. 关于《算法(第四版 谢路云译)》标准库In、Out、StdOut和StdIn的正确配置和调用经验分享(以BinarySearch二分查找算法为例)
  16. 三冲IPO,亨达海天能否敲开美股上市大门?
  17. 字幕批量翻译 字体定制
  18. zenmap扫描ip段_zenmap端口扫描工具(ip端口扫描器)V7.71 最新版
  19. 商户后台返回数据签名错误_微信小程序 用户信息开放数据校验与解密
  20. git branch -a无法获取远程分支,git fetch依然无法获取的解决办法

热门文章

  1. Python最实用的25个小技巧
  2. python面试题汇总(1)
  3. web基础编程-图片管理网站
  4. 讯达机器人_科大讯飞新品频发完善场景布局“双11”斩获三大平台25项冠军
  5. EMNLP'20最佳论文揭晓!八块肌肉=能打电话?!
  6. 开源开放 | 开源大学在线实践数据集及知识图谱MOOPer(CCKS2021)
  7. 安装tensorflow出现超时,找不到指定模+python 各个指定版本安装
  8. Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之Fragment创建
  9. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之环境配置
  10. Keras共享某个层