Python访问.ZIP文件中的多个嵌套子文件夹

2024-10-03 09:12:35 发布

您现在位置:Python中文网/ 问答频道 /正文

如果以前有人问过这个问题,我很抱歉,但是我似乎找不到任何关于它的参考资料,而且到目前为止我所写的代码都不起作用

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

ABC.ZIP > 20201007 > Reports1 > Files | Reports2 > Files | Reports3 > Files | 20201008 > Reports1 > Files | etc..

在调用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文件中的子文件夹。有什么建议吗


Tags: 文件path文件夹文件名aswithfileszip
1条回答
网友
1楼 · 发布于 2024-10-03 09:12:35

以下程序可用于从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())

你可以试试类似的东西

相关问题 更多 >