Pythonic方法从文件列表中删除目录

时间:2011-07-12 12:33:14

标签: python

我可以想到实现这个目标的简单方法,但最狡猾的方式是什么?我得到了os.listdir的文件列表,有些可能是目录。

我可以在循环中检查每一个并检查os.isdir是否返回false,然后将其从列表中删除。什么是pythonic方式来写这个?

2 个答案:

答案 0 :(得分:6)

[x for x in os.listdir(...) if not os.path.isdir(os.path.join(..., x))]

答案 1 :(得分:4)

files = filter(lambda f: os.path.isfile(os.path.join(path, f)), os.listdir(path))

OR

files = [f for f in os.listdir(path) if not os.path.isdir(os.path.join(path, f))]

已编辑:根据Ignacio的回答删除了错误(在调用os.path.join时添加)