栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在os.listdir中查找文件并跳过目录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在os.listdir中查找文件并跳过目录

您需要过滤掉目录;

os.listdir()
列出给定路径中的所有 名称
。您可以
os.path.isdir()
为此使用:

basepath = '/path/to/directory'for fname in os.listdir(basepath):    path = os.path.join(basepath, fname)    if os.path.isdir(path):        # skip directories        continue

请注意,这仅在以下符号链接之后 过滤掉目录

fname
不一定是 常规文件
,也可以是文件的符号链接。如果还需要过滤掉符号链接,则需要先使用
notos.path.islink()

在现代的Python版本(3.5或更高版本)上,更好的选择是使用

os.scandir()
函数;这产生
DirEntry()
实例。在通常情况下,这更快,因为加载的Direntry已经缓存了足够的信息来确定条目是否为目录:

basepath = '/path/to/directory'for entry in os.scandir(basepath):    if entry.isdir():        # skip directories        continue    # use entry.path to get the full path of this entry, or use    # entry.name for the base filename

entry.is_file(follow_symlinks=False)
如果仅需要常规文件(而无需符号链接),则可以使用。

os.walk()
在后台进行相同的工作;除非您需要递归向下的子目录,否则无需在
os.walk()
此处使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661596.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号