首页 > 解决方案 > 想要获取列表中目录中的子目录

问题描述

我正在使用 ubuntu 16.04 。在我的机器上,我正在下载目录中工作。我在下载中有一个名为图片的目录,在图片中我还有 2 个包含图片的文件夹。

目录如下

〜/下载/图片/文件夹1

〜/下载/图片/文件夹2

我想获取目录列表,例如

directories = ['home/user/Downloads/pictures/folder1','home/user/Downloads/pictures/folder2']

我正在使用以下代码

import os

path = '~/Downloads/pictures'

folders = []

# r=root, d=directories, f = files
for r, d, f in os.walk(path):
    for folder in d:
        folders.append(os.path.expanduser(os.path.join(r, folder)))

for z in folders:
    print(z)

这在 Windows 中工作得很好,但是当我在 ubuntu 上运行时,文件夹文件夹为空,长度为 0 。我如何让“文件夹”文件夹填满我想要的目录?

标签: python-3.xubuntu-16.04

解决方案


要从路径中获取目录,您应该首先正确构建路径(查看expanduser获取用户路径的使用),然后查找目录(注意使用列表推导):

import os
from os.path import expanduser

usrdir = expanduser("~")
path = usrdir+'/Downloads/pictures'

folders = [d[0] for d in os.walk(path)]

推荐阅读