首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在while循环中使用glob模块等待下载

在while循环中使用glob模块等待下载
EN

Stack Overflow用户
提问于 2016-12-04 08:44:19
回答 1查看 543关注 0票数 0

我想在等待文件下载时暂停我的python脚本。我不想使用显式的等待。我希望它运行得更快,而不是依赖于显式的等待。我有点幼稚,但这是我尝试过的。

代码语言:javascript
运行
复制
file_check = glob.glob1('downloads', '*.pdf')
        while not os.path.isfile(str(file_check)):
            time.sleep(1)

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

P.S我的.pdf文件下载到'/ downloads‘中,并且我的pdf在下载之前是动态命名的,所以这就是我需要全局通配符的原因。

EN

回答 1

Stack Overflow用户

发布于 2016-12-07 09:21:39

当您执行file_check = glob.glob1('downloads', '*.pdf')时,glob.glob1(...)的结果只在file_check中存储一次,仅此而已。在这种情况下,如果您进入while循环,您将永远不会离开它,因为file_check不会改变(除非有线程或类似的东西可以在外部修改它们的值)。

glob.glob和glob.glob1 (正如您在文档中看到的,它甚至不是公共的)返回一个列表。如果'downloads‘文件夹是空的,你会得到一个空的列表[]。在Python语言中,列表有一个implicit booleanness,所以如果列表是空的,在条件语句中它将被解释为False,如果不为空,则解释为'True‘。

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

代码语言:javascript
运行
复制
while not glob.glob1('downloads', '*.pdf'):
    time.sleep(1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40954178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档