python 获取当前目录下的所有文件_python - 获取当前目录中所有子目录的列表

python - 获取当前目录中所有子目录的列表

有没有办法在Python中返回当前目录中所有子目录的列表?

我知道你可以用文件做到这一点,但我需要获取目录列表。

21个解决方案

425 votes

你的意思是直接子目录,还是树下的每个目录?

无论哪种方式,您都可以使用os.path.isdir来执行此操作:

os.walk(directory)

将为每个子目录生成一个元组。 3元组中的第一个条目是目录名称,所以

[x[0] for x in os.walk(directory)]

应该递归地给你所有的子目录。

请注意,元组中的第二个条目是第一个位置中条目的子目录列表,因此您可以使用它,但它不太可能为您节省太多。

但是,您可以使用它只是为了给您直接的子目录:

next(os.walk('.'))[1]

或者查看已发布的其他解决方案,使用os.path.isdir和os.path.isdir,包括“如何获取Python中所有直接子目录”中的那些解决方案。

Blair Conrad answered 2019-01-27T14:48:07Z

126 votes

import os

d = '.'

[os.path.join(d, o) for o in os.listdir(d)

if os.path.isdir(os.path.join(d,o))]

gahooa answered 2019-01-27T14:48:23Z

87 votes

你可以使用/

from glob import glob

glob("/path/to/directory/*/")

不要忘记*之后的/。

Udit Bansal answered 2019-01-27T14:48:55Z

36 votes

如果您需要一个可以找到子目录中所有子目录的递归解决方案,请使用之前建议的walk。

如果您只需要当前目录的子目录,请将os.listdir与os.path.isdir结合使用

Eli Bendersky answered 2019-01-27T14:49:27Z

34 votes

比上面更好,因为你不需要几个os.path.join(),你将直接获得完整的路径(如果你愿意),你可以在Python 3.5+中执行此操作

subfolders = [f.path for f in os.scandir(folder) if f.is_dir() ]

这将给出子目录的完整路径。如果您只想要子目录的名称,请使用f.name而不是f.path

[https://docs.python.org/3/library/os.ht

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值