为了账号安全,请及时绑定邮箱和手机立即绑定

检查是否存在任何文件,否则执行命令

检查是否存在任何文件,否则执行命令

青春有我 2021-08-17 16:48:54
我被赋予一项任务来检测路径中是否有文件,如果没有文件,则休眠并等待文件存在,否则执行命令。这是我的代码import os,timepath = 'C:\\Users\\test'for dir, sub_dirs, files in os.walk(path):    while not files:        print("no files at this level")        time.sleep(1)    if files:        print("file detected")即使我将文件放在路径中,它也一直在休眠,它没有print file detected,这有什么问题?
查看完整描述

2 回答

?
www说

TA贡献1775条经验 获得超8个赞

import os,time


def file_exists(path):

    for dir, sub_dirs, files in os.walk(path):

        return files


path = r'C:\Users\test'

while True:

    if file_exists(path):

        print("file detected")

        break

    else:

        print("no files at this level")

        time.sleep(1)


查看完整回答
反对 回复 2021-08-17
?
温温酱

TA贡献1752条经验 获得超4个赞

files不会在while循环中改变。你将不得不os.walk再次。


import os,time


def file_exists(path):

    for dir, sub_dirs, files in os.walk(path):

        return files


path = r'C:\Users\test'

while True:

    if file_exists(path):

        print("file detected")

        break

    else:

        print("no files at this level")

        time.sleep(1)

这里我们有一个无限循环。如果找到文件,我们调用break并退出循环。


我的第一个答案中使用的嵌套组合while,并for与break只退出内部循环,所以这是行不通的。


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信