从zip归档文件中提取单个文件,而无需遍历Python中的整个名称列表

亚历山大·朱可夫(Alexander Zhukov)

我有一个带文件夹的zip文件,如下所示:

some.zip/
    some_folder/
         some.xml
         ...

我正在使用zipfile图书馆。我要的是只开some.xml文件,但我不知道现在的some_folder名。我的解决方案如下所示:

    def get_xml(zip_file):
        for filename in zip_file.namelist():
            if filename.endswith('some.xml'):
                return zip_file.open(filename)

我想知道是否有比扫描整个列表更好的解决方案。

ec

这将打印test.zip文件内的目录列表

from zipfile import ZipFile


with ZipFile('test.zip', 'r') as f:
    directories = [item for item in f.namelist() if item.endswith('/')]
    print directories

如果您知道其中只有一个目录,则只需选择第一项:directories[0]

希望能有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建zip归档文件,而无需将归档文件保存到Ruby中的磁盘

替换Zip存档中的特定文件,而无需用Java提取整个存档

Python:以zip格式打开文件,而无需临时提取文件

从S3中的zip文件中选择性地提取条目,而无需下载整个文件

从图像文件中提取感兴趣区域,而无需读取整个图像

Python:从tar.gz中提取具有模式的特定文件,而无需提取完整文件

如何从MATLAB中的zip存档中提取单个文件?

Python从zip中提取文件

遍历单个字节,然后将其保存到文件中,而无需更改内容

从zip解组特定的XML文件而无需提取

在巨大的文件中更改标题,而无需重写整个文件

遍历名称列表以提取文件并分配给 Python 中的字典

从文件中提取列表并缩写名称

我想使用python脚本从python文件中提取所有变量名,而无需编辑python文件

在FTP服务器上的zip文件中获取文件名,而无需下载整个存档

使用单个命令提取.tar归档文件中的已归档.bz2文件

从多个 Zip 中提取相同的文件(名称)并将其存储为 Zip Name = File Name (Python)

如何遍历列表,从列表中提取信息,并将其放入文件中的单独行中

将单个对象插入json文件,而无需重写整个文件

从文件中获取数据,而无需多次遍历

从S3读取ZIP文件,而无需下载整个文件

从子文件夹中的 zip 文件中提取文件

读取 zip 文件列表并从 Pandas 中的文件名中提取年份

从zip文件夹解压缩单个文件,而无需写入磁盘

使用for循环遍历列表时从csv文件中提取值

从软件包中查看归档文件的内容,而无需安装它

是否可以递归列出具有7个zip的zip文件内容而无需提取

重命名从zip文件中提取的文件作为zip文件本身的名称

从单个文件中提取值