从文件列表中删除目录的Pythonic方法
我可以想出一些简单的方法来实现这一点,但是什么是最具Python风格的方法呢?我得到了os.listdir的文件列表,其中一些可能是目录 我可以检查循环中的每一个,检查os.isdir是否返回false,然后将其从列表中删除。什么是蟒蛇式的写作方式从文件列表中删除目录的Pythonic方法,python,Python,我可以想出一些简单的方法来实现这一点,但是什么是最具Python风格的方法呢?我得到了os.listdir的文件列表,其中一些可能是目录 我可以检查循环中的每一个,检查os.isdir是否返回false,然后将其从列表中删除。什么是蟒蛇式的写作方式 [x for x in os.listdir(...) if not os.path.isdir(os.path.join(..., x))] 或 已编辑:根据Ignacio的回答删除了bug(添加了对os.path.join的调用)但对于非功能性
[x for x in os.listdir(...) if not os.path.isdir(os.path.join(..., x))]
或
已编辑:根据Ignacio的回答删除了bug(添加了对os.path.join的调用)但对于非功能性编程为-1(正如Ignacio所建议的,我错过了path.join)。应该更像:filter(lambda f:os.path.isfile(os.path.join(path,f)),os.listdir(path))
files = filter(lambda f: os.path.isfile(os.path.join(path, f)), os.listdir(path))
files = [f for f in os.listdir(path) if not os.path.isdir(os.path.join(path, f))]