【问题标题】:Python - Accessing multiple nested subfolders within a .ZIP filePython - 访问 .ZIP 文件中的多个嵌套子文件夹
【发布时间】:2021-01-24 21:14:35
【问题描述】:

如果之前有人问过这个问题,我深表歉意,但我似乎找不到任何引用它,而且我编写的代码到目前为止还没有工作。

假设我有一个名为 ABC.ZIP 的 zip 文件。 zip 文件中有子文件夹,如“20201007”、“20201008”、“20201009”。在每个子文件夹中,还有更多子文件夹,例如“Reports001”、“Reports002”、“Reports003”。每个报告文件夹都包含我想搜索其文件名的文件,并仅提取符合条件的某些文件.

ABC.ZIP > 20201007 > 报告1 > 文件 | 报告2 > 文件 | 报告3 > 文件 | 20201008 > 报告1 > 文件 | 等等。

在调用 ZipObject.namelist() 之后,如何通过 python 访问 zip 文件中的子文件夹?到目前为止,这是我尝试过的:

with ZipFile(path + "\\" + myZipFileName, 'r') as zipObject:
    listOfFolderNames = zipObject.namelist()
    for folderName in listOfFolderNames:
        with ZipFile(path + "\\" + myZipFileName + "\\" + foldername, 'r') as ZipObject1
        listofSubfolderNames1 = ZipObject.namelist()

ZipFile(path + "\\" + myZipFileName + "\\" + foldername, 'r') as ZipObject1 的行告诉我没有名为“C:\zipfiles\ABC.ZIP\20201007”的文件夹

我已经尝试过 os.walk 和 listdir,但我似乎无法在 zip 文件中引用子文件夹。有什么建议吗?

【问题讨论】:

    标签: python zip subdirectory


    【解决方案1】:

    以下程序可用于从 zip 文件中仅读取 .txt 文件:

    with ZipFile ('<your zip file>','r')as zipObject:
        for i in zipObject.infolist():
            if not i.is_dir() and i.filename.endswith('.txt'):
                with zipObject.open((i.filename), 'r') as f:
                    print(f.read())
    
    

    你可以试试类似的。

    【讨论】:

    • 谢谢! Infolist() 是我所缺少的。
    猜你喜欢
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 2015-12-04
    • 2020-05-01
    相关资源
    最近更新 更多