如何在 Python 中使用文件夹列表创建文件夹树字典?

How to create a folder tree dict using a list of folders in Python?

提问人:Geoffrey Mungai 提问时间:3/22/2022 更新时间:3/22/2022 访问量:112

问:

我正在使用 Python 构建一个音乐播放器,我有一个类似 scandir 的函数,它返回包含音乐的所有文件夹的列表。

结果如下所示:

folders = [
    "~/Music/",
    "~/Music/Band On The Run (Standard)",
    "~/Music/The life - Frank Sinatra",
    "~/Music/Link to Music",
    "~/Music/Link to Music/100 Dolly Parton",
    "~/Music/Link to Music/JW-Unreleased/Fighting Demons",
    "~/Music/Link to Music/JW-Unreleased/Goodbye and Good Riddance",
    # a million more items
]

类似 scandir 的函数非常昂贵,因为它检查整个用户驱动器并且花费的时间不一致。

由于不一致,我想在后台定期运行该函数,并在接下来的 5 分钟内使用结果。

我想创建一个函数,该函数将使用上面的文件夹列表返回文件夹的所有子目录。例如,如果我传递给该函数,那么我可以得到一个包含其中所有直接子文件夹的列表,而无需使用:"~/Music/"scandir()

def get_children(parent:str) -> List:
    subfolders = []

    # do something

    return subfolders

get_children("~/Music/")

# ["Band On The Run (Standard)", "The life - Frank Sinatra", "Link to Music"]

如何实现这样的功能?

python 字符串 列表 拆分 scandir

评论

0赞 chill0r 3/22/2022
为什么不使用 os.walk 或 os.listdir 方法?
0赞 martineau 3/22/2022
我建议使用 Path.glob('**/*')。请看这个答案

答: 暂无答案