如何在Python中使用通配符搜索尚未存在的子文件夹

2024-06-28 19:19:38 发布

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

我正试图通过pywebcopy下载一些网页。我使用这个库,因为它克隆完全相同,但是,它尝试从网页下载每个文件。结果,有时它会被某个文件卡住,并进入无限循环,我猜。(我从来没有等过超过10分钟。)事实上,它下载了我想下载的内容,即完整的网页。因此,我想在文件下载后终止它的进程,并在循环中转到其他网页

我会用while来做,但是文件夹结构太嵌套了。由于该文件夹在库下载之前不存在,我无法使用os.path进行搜索

文件夹结构如下所示:

main_folder├───subfolder1───some_folder1  
│                 └───some_folder2
│                        some_image.png
│   
│
└───subfolder2
    └───sub_subfolder1
        └───sub_subfolder2
            └───sub_subfolder3
                └───sub_subfolder4
                    └───sub_subfolder5
                        │   index.html
                        │   some.pwc
                        │
                        └───amp
                                the_file_I_want.pwc

我需要的文件总是在amp文件夹中。所以,基本上我应该找到那个文件夹并检查文件是否在那里。但是,每个网页的sub_子文件夹3、sub_子文件夹4和sub_子文件夹5的名称都会更改。我必须用通配符搜索,它类似于:“main_folder/subfolder2/**/amp/*.pwc”。但在开始下载之前,该文件夹不存在

我想做的是这样的:

from pywebcopy import save_webpage
import glob
...

pattern = 'main_folder/subfolder2/**/amp/*.pwc'
while glob.glob(pattern).is_file() = False:
    save_webpage(url, download_folder, **kwargs)

这是一个无效的语法,但这正是我想要的。我已经找过了,但找不到任何解决办法。任何帮助都将不胜感激


Tags: 文件文件夹网页mainsomefolder结构glob