У меня есть скрипт, который вспоминает в словаре каталоги, количество подкаталогов и файлов в нем.Мне нужно исключить файлы этого словаря, но я не могу этого сделать.
path="/home/tmp"
def PathToDict(path):
st = os.lstat(path)
result = {}
if S_ISDIR(st.st_mode):
result['Path'] = path
result['Subdir'] = {
name: PathToDict(os.path.join(path,name))
for name in os.listdir(path)}
result['Num_Subdir'] = int(len([i for i, j, k in os.walk(path)]))
Это функция, которая вызывает все папки, но проблема в том, что они также вспоминают такие файлы, как .sh или logs.Я пытаюсь использовать метод os.path.isdir, но не могу.
Фактический вывод:
'Path': '/var/lib/jenkins/jobs/updates',
'Num_Subdir': 8,
'Subdir': {
'nextBuildNumber': {},
'config.xml': {},
'lastSuccessful': {},
'lastStable': {},
'builds': {
'Path': '/var/lib/jenkins/jobs/updates2',
'Num_Subdir': 7,
'Subdir': {
'lastStableBuild': {},
'lastSuccessfulBuild': {},
'1': {
'Path': '/var/lib/jenkins/jobs/updates3',
'Num_Subdir': 1,
'Subdir': {
'changelog.xml': {},
'injectedEnvVars.txt': {},
'build.xml': {},
'changelog.xml.temp2': {},
'log': {}
И мне нужен вывод, исключая, например, .xml и .txt.В корне пути у меня также есть файлы, и они перечислены в словаре, и мне тоже нужно исключить эти файлы.