を返して:
>>> found_extensions = set()
>>> found_extensions.add('.png')
>>> found_extensions.add('.png') # try to add .png again
>>> found_extensions
{'.png'} # <-- appear only once
import os
extensions = {'.jpg','.png','.gif'} # set literal
found_extensions = set()
for dirpath, dirnames, files in os.walk(os.getcwd()):
for f in files:
found_extensions.add(os.path.splitext(f)[-1])
# ^-- duplicated item is not added
print(extensions & found_extensions) # to get itersection (&) => filter
print(len(extensions & found_extensions))
UPDATEを数を取得するにはディレクトリごとに一致するファイル数の合計:
import os
extensions = {'.jpg','.png','.gif'} # set literal
for dirpath, dirnames, files in os.walk(os.getcwd()):
count = sum(os.path.splitext(f)[-1] in extensions for f in files)
print(dirpath, count)
os.path.splitext(f)[-1] in extensions
は、ファイルが希望する拡張子を持つかどうかをチェックし、True
(= 1)/ False
(= 0)を返します。それらを集約することはあなたに欲しいでしょう。
>>> True == 1
True
>>> False == 0
True
>>> sum([True, False, False, True, False])
2
私は1枚のjpg、1つのGIF、ディレクトリ内の2のtxtが、それは1枚のjpg、2つのGIFを、そして1つのTXTと2が、次のディレクトリを、返さずに、それはまだ返すことを行うと2、私が必要とするのは、それが3 @ – ScottC
@ScottCを返すことです。私はあなたの質問を誤解しました。私は答えを更新しました。もう一度それをチェックしてください。 – falsetru