python使用StringIO缓存实现FTP内存下载和上传及gzip内存压缩解压

本文介绍了如何利用Python的StringIO进行FTP内存下载和上传,同时讲解了gzip的内存压缩和解压操作。在FTP操作中,注意StringIO对象需要seek(0)来重置位置。FTP的STOR和retrbinary方法需要文件对象,而gzip.GzipFile需要至少一个参数,可以是filename或fileobj。在实践中,FTP上传时,GZIP文件名会影响到解压后的文件名。
摘要由CSDN通过智能技术生成

年纪大了,头脑确实不够用。学习实践类不少天,终于觉悟。
1、StringIO 对象切记多多seek(0),否则经常出现结果是空,打乱原来思路。
2、FTP STOR retrbinary等方法,操作的对象是文件对象实例,而非字符串文档,需要使用文件/类文件StingIO/BytesIO file-like object的文件类型操作方法,如read,write等。lxml的parse方法同样接收的是文件对象。
3、看了gzip模块源码,构造函数GzipFile()参数filename和fileobj必须要有1个。类方法实际操作的是fileobj,当fileobj参数为None时,初始化filename对应的文件对象生成fileobj;当filename为空时,GZIP文件名默认为‘’空,而不写入文件名。当两者都非空时,操作fileobj,其GZIP文件名为filename。
4、实践发现,FTP上传函数storbinary(“STOR /plr/222.xml.gz”, fileobj),fileobj没有对应GZIP filename时,上传到服务器的文件解压文件名自动变为222.xml。fileobj存在filename时,以实际filename.

def ftpstream():
# download or upload ftp file by stringio,no disk file
#gzip.GzipFile(filename=None, mode=None, compresslevel=9, fileobj=None, mtime=None)
from ftplib import FTP
import gzip
import cStringIO
import zipfile
import Strin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值