Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文件列表中删除目录的Pythonic方法_Python - Fatal编程技术网

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

从文件列表中删除目录的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的调用)但对于非功能性

我可以想出一些简单的方法来实现这一点,但是什么是最具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的调用)

但对于非功能性编程为-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))]