我需要从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()
然后打印行[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]
(您的原始代码毫无理由地在行列表中循环,而不是只打印第二行)
我需要在系统中向客户提供zip文件的视图,并允许客户下载选定的文件。 解析zip文件并显示在网页上。并记住后端的每个zipentry位置(例如file1从字节100宽度1024字节开始)。 当客户点击下载按钮时下载指定的文件。 现在我已经记住了所有zipentry位置,但是有java zip工具来解压缩zip文件的指定位置吗??API就像解压一样(file, long entryStart, lo
我一直在尝试读取ZIP存档中的PHP文件。我编写了以下代码,它可以读取文本文档和回显而没有错误,但当我用PHP文件测试时,什么都没有出现。那么我可以做些什么来读取PHP文件而不提取呢? 提前感谢!
问题内容: 我有一个zip存档,其中包含一堆纯文本文件。我想解析每个文本文件的数据。到目前为止,这是我写的内容: 我需要一个RandomAccessFile来做到这一点吗?我在拥有ZipInputStream的地方迷路了。 问题答案: 不,您不需要。首先获取此zip文件条目的数据: 然后将其包装为(从二进制解码为文本)和a (一次读取一行): 然后像往常一样从中读取行。像往常一样将所有适当的位包装
问题内容: 我不是在谈论特定的行号,因为我正在读取具有相同格式但长度不同的多个文件。 说我有这个文本文件: 我希望你知道我的意思。我正在考虑遍历文件,然后使用正则表达式搜索以找到“开始”和“结束”的行号,然后使用线缓存从开始行读取到结束行。但是如何获得行号?我可以使用什么功能? 问题答案: 如果您只想要和之间的文本块,则可以执行以下操作: 实际上,您不需要操纵行号即可读取开始和结束标记之间的数据。
问题内容: 这是示例xml文档: 我想提取文本而不指定元素,我该怎么做,因为我有10个这样的文档。我想要这样做是因为我的问题是用户正在输入一个我不知道的单词,必须在其各自文本部分的所有10个xml文档中进行搜索。为此,我应该在不知道元素的情况下知道文本的位置。所有这些文档都不同的另一件事。 请帮忙!! 问题答案: 您可以简单地去除所有标签: 但是,如果您只想在Linux中搜索文件中的某些文本,则可
问题内容: 我需要在zip文件中读取单个文件“ test.txt”的内容。整个zip文件是一个非常大的文件(2gb),其中包含很多文件(10,000,000),因此,提取整个文件对我而言不是可行的解决方案。如何读取单个文件? 问题答案: 尝试使用包装器: 您也可以使用: