How to get the total number of specific files in a directory containing subdirectories?
本问题已经有最佳答案,请猛点这里访问。
下面的python代码计算我在一个包含多个子目录的目录中拥有的文件总数。结果将打印子目录名及其包含的文件数。
如何修改此内容,以便:
- 它只查找特定的文件扩展名(即"*.shp")。
- 它提供每个子目录中的".shp"文件数和所有".shp"文件的最终计数。
代码如下:
1 2 3 4 5 6 | import os path = 'path/to/directory' folders = ([name for name in os.listdir(path)]) for folder in folders: contents = os.listdir(os.path.join(path,folder)) print(folder,len(contents)) |
可以对字符串使用.endswith()函数。这对于识别扩展非常方便。您可以通过循环查找这些文件的内容,然后如下所示。
1 2 3 4 5 | targets = [] for i in contents: if i.endswith(extension): targets.append(i) print(folder, len(contents)) |
感谢您的评论和回答,这是我使用的代码(如果太接近,请随意将我的问题标记为链接问题的副本):
1 2 3 4 5 6 7 8 9 10 11 12 | import os path = 'path/to/directory' folders = ([name for name in os.listdir(path)]) targets = [] for folder in folders: contents = os.listdir(os.path.join(path,folder)) for i in contents: if i.endswith('.shp'): targets.append(i) print(folder, len(contents)) print"Total number of files =" + str(len(targets)) |