2016-12-04 36 views
0

我想在等待文件下载发生时暂停我的python脚本。 我不想使用明确的等待。 我希望它能够快速运行,而不是依靠明确的等待。 我有点不喜欢,但这是我所尝试过的。在while循环中使用glob模块等待下载

file_check = glob.glob1('downloads', '*.pdf') 
     while not os.path.isfile(str(file_check)): 
      time.sleep(1) 

我使用STR(),因为它抱怨需要的路径的字符串。 我有一种感觉,这不是正确做到这一点的方法。所以我应该如何动态地等待文件下载?

P.S 我.pdf文件下载到“/下载”,和我的PDF所以这就是为什么我需要的水珠通配符动态下载之前命名。

回答

0

当你这样做file_check = glob.glob1('downloads', '*.pdf')glob.glob1(...)的结果只存储在file_check就是这样。在这种情况下,如果在while循环中输入内容,则永远不会退出,因为file_check不会更改(除非有线程或可以修改其外部值的东西)。

glob.glob和glob.glob1(这个它甚至不公开,因为你可以看到文档)返回一个列表。如果“下载”文件夹为空,您将收到一个空列表[]。在Python中,列表有一个implicit booleanness,所以如果列表为空,则在条件语句中它将被解释为False,或者如果它不是空的,则为“真”。

重写你的代码,结果会是这样的:

while not glob.glob1('downloads', '*.pdf'): 
    time.sleep(1)