我需要从zip存档中包含的所有文件中提取特定行(第二行)。我的尝试(显然)没有用。我能找到的与此相关的一切都涉及使用特定的字符串/变量来缩小要从存档文件中提取的内容 - 我不能在我的情况下使用它。
我最接近的是从ALL文件中提取所有行。
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行)。所以我想制作临时文件并不是不可能的,但它看起来太迂回而且不够优雅。
答案 0 :(得分:0)
这将有效:
import zipfile
with zipfile.ZipFile() as input_zipfile:
for f in input_zipfile.namelist():
lines = input_zipfile.read(f).split("\n")
print lines[1]
(您的原始代码无缘无故地遍历行列表,而不是仅打印第二行)