我需要下载文本文件的zip存档,将存档中的每个文本文件分发给其他处理程序进行处理,最后将解压缩的文本文件写入磁盘.

我有以下代码.它在同一个文件上使用多个打开/关闭,这看起来并不优雅.如何让它更优雅高效?

zipped = urllib.urlopen('www.abc.com/xyz.zip')

buf = cStringIO.StringIO(zipped.read())

zipped.close()

unzipped = zipfile.ZipFile(buf, 'r')

for f_info in unzipped.infolist():

logfile = unzipped.open(f_info)

handler1(logfile)

logfile.close() ## Cannot seek(0). The file like obj does not support seek()

logfile = unzipped.open(f_info)

handler2(logfile)

logfile.close()

unzipped.extract(f_info)

最佳答案 您的答案在您的示例代码中.只需使用StringIO来缓冲日志文件:

zipped = urllib.urlopen('www.abc.com/xyz.zip')

buf = cStringIO.StringIO(zipped.read())

zipped.close()

unzipped = zipfile.ZipFile(buf, 'r')

for f_info in unzipped.infolist():

logfile = unzipped.open(f_info)

# Here's where we buffer:

logbuffer = cStringIO.StringIO(logfile.read())

logfile.close()

for handler in [handler1, handler2]:

handler(logbuffer)

# StringIO objects support seek():

logbuffer.seek(0)

unzipped.extract(f_info)

python逐个读取文件_在Python中多次读取同一文件相关推荐

  1. linux中一切都是文件_在Linux中,“一切都是文件”是什么意思?

    linux中一切都是文件 One of the defining features of Linux and other UNIX-like operating systems is that &qu ...

  2. h5页面如何预览excel文件_在网页中预览excel表格文件

    项目需求在前端页面中实现预览excel表格的功能,上网了解之后大致总结为一下几种方法. 1.office文档转换为pdf,再转swf,然后通过网页加载flash进行预览 2.通过 xlsx.js,js ...

  3. kali创建文件_在kali中使用ecryptfs创建加密文件夹-bin文件夹

    在linux中有一个加密工具叫ecryptfs,我们可以在kali中安装它,创建一个用于加密的文件夹,用eCryptFS加密的伪文件系统挂载到你现有的文件系统上,把我们需要加密的文件放入这个文件夹就可 ...

  4. python代码写入方式_【Python 1-17】Python手把手教程之——文件的读写以及I/O操作...

    作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 从文件中读取数据 文本文件可存储的数据量很多,每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序来说尤其 如 ...

  5. python从文件中读取数据_【Python】从文件中读取数据

    从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...

  6. python从文件中读取数据_使用Python脚本从文件读取数据代码实例

    这篇文章主要介绍了使用Python脚本从文件读取数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近自学Python的进度比较慢,工作之 ...

  7. c++读取utf8文件_【Python】File文件对象

    open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...

  8. python读取raw数据文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  9. python读取raw图片文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  10. c++ 写入文件_利用Python把数据存储在csv文件中

    鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...

最新文章

  1. ASCII计算机语言,unicode和ascii的区别是什么
  2. 如何在Java中将String转换为int?
  3. VSCode + Latex 配置
  4. linux系统相关硬件查询
  5. Android工程中R.java文件的重新生成——注意资源文件的错误
  6. System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题
  7. 坐标转换 计算机图形学_计算机图形学的转换类型
  8. 爸爸拉合弦飞鸽传书源代码
  9. 思科isis路由的优先级_【分享】超全!集成ISIS知识详解~
  10. Linux向文件中写入内容
  11. AK的故事之英语学习篇(mistake)
  12. HTML5 中article,header和footer标签的使用
  13. Excel从入门到精通--基础篇
  14. 计算机电子表格证怎么样,初学者在电脑上如何制作电子表格
  15. 高斯投影坐标转换正算参数
  16. java计算机毕业设计教师继续教育MyBatis+系统+LW文档+源码+调试部署
  17. Web测试的常见测试点
  18. 查询任何一门课程成绩在70分以上的姓名、课程名称和分数
  19. 风水——概率学——需要大数据依托
  20. Android 10 加载手机本地图片

热门文章

  1. linux 虚拟机同步时间
  2. python实现真正的冒泡排序算法(时间复杂度优化版)!
  3. 王者荣耀连接不上服务器最新赛季排名,王者荣耀新赛季连掉三段 初期不能打排位是有原因的...
  4. mysql shell 所有表_备份mysql所有数据库的每个表的shell脚本
  5. C语言ftell()函数(返回文件当前位置)(返回给定流 stream 的当前文件位置)
  6. Linux编译安装中configure、make和make install各自的作用详解
  7. VSCODE更改文件时,提示:EACCES: permission denied的解决办法(ubuntu16.04虚拟机)
  8. 牛客 华为机试(我的代码记录)
  9. 如何在jupyter notebook中运行markdown文件(脚本、代码)
  10. 【中级软考】软件质量模型的六大特性27个子特性(软件质量特性:功能性、可靠性、易用性、效率性、软件维护性、软件可移植性)