python:从zip压缩文件中提取特定行

1 投票
1 回答
1114 浏览
提问于 2025-04-17 19:46

我需要从一个压缩文件里提取特定的一行(第二行),但是我尝试的方法(显然)没有成功。我找到的所有相关信息都涉及使用特定的字符串或变量来缩小要提取的内容,但在我的情况下我不能这样做。

我目前能做到的就是从所有文件中提取所有行。

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] 来获取每个文件的第二行。但是这在压缩文件中不适用。我需要创建临时文件并使用这种语法吗,还是有其他办法可以解决这个问题?

我尝试把最后一行改成 print line[1],但这样会出现 IndexError 的错误。

顺便提一下,这些文件并不大(只有4到12行)。所以我想制作临时文件也不是不可以,但这感觉太繁琐和不够优雅。

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]

(你原来的代码是把每一行都循环了一遍,其实没必要,直接打印第二行就行了)

撰写回答