编程语言
首页 > 编程语言> > 有没有一种方法可以检索Python中的子目录而不必遍历所有文件?

有没有一种方法可以检索Python中的子目录而不必遍历所有文件?

作者:互联网

我正在寻找一种列出当前工作目录中包含的子目录的方法,但是,我一直无法找到一种不会遍历所有文件的方法.

本质上,如果我有一个包含大量文件的文件夹和2个文件夹,则我想要一种可以快速返回包含2个文件夹名称的列表的方法,而不必扫描所有文件.

有没有办法在Python中做到这一点?

编辑:我应该澄清一下,我的问题是关于检索目录的性能.我已经知道几种获取目录的方法,但是如果工作目录中也包含许多文件,那么它们都会减慢速度.

解决方法:

没有一种方法只能从操作系统中检索目录.您必须过滤结果.虽然,使用os.scandir似乎比os.listdir和较旧的os.walk实现将性能提高了magnitude(请参阅基准),因为它尽可能避免检索元数据以外的任何内容.如果您使用的是3.5,则它已经集成到标准库中.否则,您似乎需要使用scandir软件包.

从os.scandir过滤结果

ds = [e.name() for e in os.scandir('.') if e.is_dir()]

根据文档,步行是根据scandir实现的,它也提供了相同的加速.

标签:os-walk,python
来源: https://codeday.me/bug/20191119/2040002.html