在目录结构中:
"~/clients/images/"
其中clients
包含近1000个images
子目录,我需要发现哪些子目录缺少文件master.jpg
。我尝试将所需的输出打印到控制台失败,我尝试将其写入.txt文件。
import os
path = os.path.expanduser('~/clients/images/')
mast = '/master.jpg'
print '\nFinding missing masters...n'
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
recipe = os.path.join(dirpath, filename)
if "master.jpg" not in filenames:
print str(dirnames), '\n'
目前做的是看似打印出大量空列表(" []")和换行符,这绝对不是我想要的(我只想知道哪些子目录缺少' master.jpg' 。)
答案 0 :(得分:1)
试试这个:
for dirpath, dirnames, filenames in os.walk(path):
if "master.jpg" not in filenames: print dirpath
对于os.walk
生成器生成的每个3元素对象,第一个元素(代码中的dirpath
)表示正在检查的目录。第三个元素(代码中的filenames
)是一个包含该目录中所有文件的列表,因此检查master.jpg
中filenames
的缺失是正确的。
我假设master.jpg
永远是一个文件 - 如果有可能存在一个名为master.jpg
的子目录(看起来很奇怪,但要求是你的而不是我的),那么你可能不得不这样做:
for dirpath, dirnames, filenames in os.walk(path):
if "master.jpg" not in filenames and "master.jpg" not in dirnames: print dirpath