栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从FTP python读取缓冲区中的文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从FTP python读取缓冲区中的文件

确保首先登录ftp服务器。之后,使用

retrbinary
以二进制模式提取文件。它在文件的每个块上使用回调。您可以使用它来将其加载到字符串中。

from ftplib import FTPftp = FTP('ftp.ncbi.nlm.nih.gov')ftp.login() # Username: anonymous password: anonymous@# Setup a cheap way to catch the data (could use StringIO too)data = []def handle_binary(more_data):    data.append(more_data)resp = ftp.retrbinary("RETR pub/pmc/PMC-ids.csv.gz", callback=handle_binary)data = "".join(data)

优点:如何在使用字符串时解压缩字符串?

简易模式,使用上面的数据字符串

import gzipimport StringIOzippy = gzip.GzipFile(fileobj=StringIO.StringIO(data))uncompressed_data = zippy.read()

更好一点,完整的解决方案

from ftplib import FTPimport gzipimport StringIOftp = FTP('ftp.ncbi.nlm.nih.gov')ftp.login() # Username: anonymous password: anonymous@sio = StringIO.StringIO()def handle_binary(more_data):    sio.write(more_data)resp = ftp.retrbinary("RETR pub/pmc/PMC-ids.csv.gz", callback=handle_binary)sio.seek(0) # Go back to the startzippy = gzip.GzipFile(fileobj=sio)uncompressed = zippy.read()

实际上,即时进行解压缩会更好,但是我看不到使用内置库实现压缩的方法(至少不容易)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641002.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号