如何检查给定路径是否包含子文件夹,并且在python中是否为空?

如何检查给定路径是否包含子文件夹,并且在python中是否为空?,python,file,directory,listdir,Python,File,Directory,Listdir,我想检查给定路径是否包含文件夹和文件,以及文件夹是否为空 我编写了一段脚本,列出了所有文件和文件夹,但问题是,如果文件夹为空,它将显示为文件。但这是不正确的 代码: 我做错了什么以及如何检查子文件夹是否为空?您需要os.walk()来执行此操作 src = "I:/" for dirpath, dirnames, files in os.walk(src): if files: print("Directory {0} has files in it".format(di

我想检查给定路径是否包含文件夹和文件,以及文件夹是否为空

我编写了一段脚本,列出了所有文件和文件夹,但问题是,如果文件夹为空,它将显示为文件。但这是不正确的

代码:

我做错了什么以及如何检查子文件夹是否为空?

您需要
os.walk()
来执行此操作

src = "I:/"
for dirpath, dirnames, files in os.walk(src):
    if files:
        print("Directory {0} has files in it".format(dirpath))
        print("Files are : {0}".format(files))
    else:
        print("Diretory {0} is empty".format(dirpath))


所以我不能使用os.listdir()而不是os.walk()?您说过要检查子文件夹是否为空
os.listdir()
列出给定路径中的所有文件和目录。要检查子文件夹,您需要创建一个循环并再次执行do
os.listdir()
。这可能有点混乱。我想检查给定路径是否包含文件和子文件夹,而不是子文件夹是否为空
os.walk()
正是这样做的。它以不同的变量返回给定文件夹中的目录和文件。请您阅读一次有关os.walk()的内容。这对这样的任务非常有帮助。我尝试了你的答案。这很好,但id没有返回空文件夹,但它显示文件夹包含文件,但没有列出这些文件。你当前的代码有什么问题?另一方面,
异常除外:
是不好的做法。为什么异常语法错误??如何使其成为良好的实践?为什么异常语法是错误的??如何使其成为良好的实践?您可以在Stack Overflow上找到一些关于此主题的好资源:,
src = "I:/"
for dirpath, dirnames, files in os.walk(src):
    if files:
        print("Directory {0} has files in it".format(dirpath))
        print("Files are : {0}".format(files))
    else:
        print("Diretory {0} is empty".format(dirpath))