返回包含指定扩展名的目录列表

2024-04-24 11:42:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到一个目录下面的目录包含mp3的

我可以使用os.walk轻松地获得文件列表。使用os.path.join(os.path.abspath(root), file)可以很容易地获得完整路径,但我只需要一个包含匹配目录的列表。我试过使用os.path.dirnameos.path.pardir,但是我得到的只是'..'。在

import os
l = []
for root, dirs, files in os.walk('.'):
    for file in files:
         if file.endswith('.mp3'):
             l.append(os.path.dirname(file))

我可能遗漏了一些明显的东西?在

干杯。在


Tags: 文件pathin目录列表forosroot
1条回答
网友
1楼 · 发布于 2024-04-24 11:42:30

root已经给出了每个循环中的目录名;只需将其设为绝对值并添加到l列表中。然后移到下一个目录(一个匹配项就足够了):

import os
l = []
for root, dirs, files in os.walk('.'):
    if any(file.endswith('.mp3') for file in files):
        l.append(os.path.abspath(root))

any()一旦找到所包含的iterable中的第一个元素,即True返回{};因此以.mp3结尾的第一个文件将导致any()返回True,当前目录将添加到匹配列表中。在

相关问题 更多 >