1

我需要从 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]获取每个文件的第二行。但这不适用于 zipfile。我是否需要创建临时文件并使用该语法,或者有没有办法解决这个问题?

我尝试将最后一行更改为,print line[1]但随后我得到一个IndexError.

附带说明一下,文件并不大(4-12 行)。所以我想制作临时文件不是不可能的,但它似乎过于迂回和不雅。

4

1 回答 1

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]

(您的原始代码无缘无故地循环遍历行列表,而不仅仅是打印第二行)

于 2013-03-20T16:37:08.150 回答