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

时间:2018-11-14 11:42:44

标签: python

我被赋予一项任务来检测路径中是否有文件,如果没有文件,请休眠并等待直到存在文件,否则执行命令。

这是我的代码

import os,time

path = '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 个答案:

答案 0 :(得分:3)

fileswhile循环中不会更改。您将不得不再次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并退出循环。

我的第一个答案使用了whilefor的嵌套组合,而break仅退出了内部循环,因此行不通。

答案 1 :(得分:0)

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)