python:从zip文件中的所有文件中提取特定行
问题描述:
我需要从包含在zip文件中的所有文件中提取特定行(第二行)。我的尝试(显然)没有奏效。我所能找到的与此有关的所有内容涉及使用特定的字符串/变量来缩小要从归档文件中提取的内容 - 我不能在我的情况下使用它。python:从zip文件中的所有文件中提取特定行
我得到的最接近的是从所有文件中提取所有行。
import zipfile
with zipfile.ZipFile() as input_zipfile:
for f in input_zipfile.namelist():
for line in input_zipfile.read(f).split("\n"):
print line
理想我想使用类似.readlines()
然后print line[1]
获得每个文件的第二行。但是这不适用于zipfiles。我是否需要创建临时文件并使用该语法,或者有办法解决这个问题吗?
我试图将最后一行更改为print line[1]
,但后来我得到一个IndexError
。
作为一个方面说明,文件并不大(4-12行)。所以我认为制作临时文件不是不可能的,但它看起来过于迂回和不雅。
答
这将工作:
import zipfile
with zipfile.ZipFile() as input_zipfile:
for f in input_zipfile.namelist():
lines = input_zipfile.read(f).split("\n")
print lines[1]
(你的原代码循环无故行列表,而不是只打印2日)
+0
Ace时,我得到一个“IndexError:字符串索引超出范围”,这个工程! 很多人都非常感谢Wooble。 – soltreas 2013-03-20 16:45:25
你尝试只是改变你的最后一行打印线[1]? (并且你在for循环行末尾缺少一个冒号,但是我认为这只是一个编辑错误,当你在*上准备这个时) – 2013-03-20 16:28:16
感谢您指出错字。 当试图行[1] – soltreas 2013-03-20 16:36:37