我试图做一个nagios检查来计算在给定的目录下的任何子目录名称“失败”中的文件数量,然后检查max_files阈值。这有点像在bash中做类似for i in `find . -type d -name failed`; do echo $; ls |wc -l $i; done
的事情。 (努力学习,而不是回落到bash的更多Python的。是的,这命令不会书面工作,只是张贴说明原因。)Python:在特定命名的子目录中计数文件
我拼凑起来的这种方法,实际上我想要做什么它,但我似乎无法摆脱它产生的所有冗余输出。我试过重新排序for循环,但无济于事。所以我显然错过了一些超级简单的东西。
import os, fnmatch
def count_files_in_subd():
for root, dirs, files in os.walk("."):
print "{} in {}".format(len(files), root)
for dirname in fnmatch.filter(dirs, 'failed'):
print "{} in {}".format(len(files), root)
count_files_in_subd()
这一切之前,我开始做比较文件计数threshholds,但我卡在这部分似乎并不能敲松需要继续思考。
什么是你想要的输出? –
我正在寻找的线沿线的东西: ''/路径/到/ DIR:4 files'' ''/路径/到/ anotherdir:0 files'' 等 可以像也很简单,就像''dirName 4''一样。我不需要任何细节。 (原谅奇怪的格式和编辑,我在这里是新的。) – MagicToaster