【问题标题】:Count number of files in different sub-directory计算不同子目录中的文件数
【发布时间】:2017-12-21 22:20:38
【问题描述】:

我正在尝试计算每个子目录中的图像总数。
一个主目录和 300 个子目录每个子目录有 1 个图像,但下面的代码显示每个目录中的图像数量不同,几乎 20 个子目录应该是 1 个图像。
输出:

图片:0 目录:1
图片:3 目录:2
图片:5 目录:3
等等。但下面的代码没有显示任何内容,没有任何错误。

import os
path='C:/Python36/cclabel/n13/'
def count_em(path):
    x = 0
    for root, dirs, files in os.walk(path):
       files_count = (len(files))
       x = x + 1
       print("Images:",files_count,"Directory:",x)
    return files_count

【问题讨论】:

  • 上面的代码来自同一个帖子,但它没有显示任何内容,帖子中的其他代码也很少在子目录中遍历。
  • 你在任何地方打电话 count_em吗?

标签: python count directory subdirectory os.walk


【解决方案1】:

您发布的代码并不能完全满足您的需求。但是,由于我对您的问题的理解,我对其进行了编辑。希望这是您所需要的。

import os    
path ="C:/Directory/"

def count_em(path):
    x = 0
    files_count = 0
    for root, dirs, files in os.walk(path):
       files_count += (len(files))
       x = x + 1

       print("Images:",files_count,"Directory:",x)
    return files_count



count_em(path)

编辑:

包含 5 个目录和子目录和文件的目录的输出:

Images: 0 Directory: 1
Images: 3 Directory: 2
Images: 3 Directory: 3
Images: 5 Directory: 4
Images: 9 Directory: 5
Images: 9 Directory: 6
.
.
.
.
.
Images: 84 Directory: 44
Images: 88 Directory: 45
Images: 90 Directory: 46
Images: 90 Directory: 47
Images: 90 Directory: 48
Images: 94 Directory: 49

【讨论】:

  • 我添加了脚本的输出。我不知道为什么它不会显示任何东西,除非选择的路径有问题。
  • 您确定创建了对函数count_em()的调用吗?
  • 哦,是的,它起作用了,但是我的主目录(n13)有一个文件夹,而输出是图像:0 目录:1 图像:1 目录:2 总图像:1
  • 我已对其进行了编辑,使其符合您的要求。对吗?
  • 不,但是你的旧代码有效,谢谢,现在我想添加一个简单的条件,`if files_count>2:` 使用这个删除当前文件夹shutil.rmtree(),但我错了
【解决方案2】:

正如 Dan Farrell 所建议的,您需要调用函数 count_em。单独编写函数是不行的。你必须打电话给它。在文件末尾粘贴以下内容,您就可以开始了:

total = count_em(path)
print('Total images: ', total)

【讨论】:

  • 好的,这段代码返回主目录中的图像总数,而我想计算每个子目录中的图像总数(主目录中总共 100 个子目录)请检查上面的预期结果
猜你喜欢
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 2012-06-09
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多