首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: os.listdir替代/特定扩展

Python: os.listdir替代/特定扩展
EN

Stack Overflow用户
提问于 2010-06-26 10:44:26
回答 5查看 18.4K关注 0票数 11

是否可以使用os.listdir命令查看具有特定扩展名的文件?我希望它可以工作,以便它可以只显示文件或文件夹与.f结尾。我检查了文档,什么也没找到,所以别问了。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-26 10:50:07

glob擅长这一点:

代码语言:javascript
复制
import glob
for f in glob.glob("*.f"):
    print(f)
票数 24
EN

Stack Overflow用户

发布于 2010-06-26 10:45:50

别问什么?

代码语言:javascript
复制
[s for s in os.listdir() if s.endswith('.f')]

如果你想检查扩展列表,你可以做一个明显的泛化,

代码语言:javascript
复制
[s for s in os.listdir() if s.endswith('.f') or s.endswith('.c') or s.endswith('.z')]

或者用另一种方式编写会稍微短一些:

代码语言:javascript
复制
[s for s in os.listdir() if s.rpartition('.')[2] in ('f','c','z')]
票数 16
EN

Stack Overflow用户

发布于 2010-06-26 16:06:14

到目前为止还没有提到另一种可能性:

代码语言:javascript
复制
import fnmatch
import os

for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.f'):
        print file

实际上,这就是glob模块的实现方式,所以在这种情况下,glob更简单、更好,但fnmatch模块在其他情况下也很方便,例如,当使用os.walk进行树遍历时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3122514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档