使用filter和map查找扩展名为.txt和.py的目录中的所有文件

时间:2012-11-28 05:15:47

标签: python map filter tuples

如何使用过滤器和地图功能在Python中找到以.txt.py结尾的目录中的文件?

4 个答案:

答案 0 :(得分:4)

os.listdir会为您提供文件列表。然后你只需要编写一个函数,当文件名以True.py结尾时返回.txt

filter(lambda x: x.endswith(('.txt','.py')), os.listdir(os.curdir))

......我真的不知道如何将map纳入其中......

答案 1 :(得分:2)

您还可以尝试列表推导,例如

[x for x in os.listdir(os.curdir) if os.path.splitext(x)[1] in ('.txt', '.py')]

答案 2 :(得分:2)

以下是两种方式:

纯粹的功能性方法:

from operator import methodcaller
filter(methodcaller('endswith', ('.txt', '.py')), os.listdir('.'))

列表理解方法:

[fn for fn in os.listdir('.') if fn.endswith(('.txt', '.py'))]

希望这会有所帮助: - )

答案 3 :(得分:0)

您可以使用glob模块获取这些文件

>>> import glob    
>>> glob.glob('*.py')
['test.py', 'a.py', 'b.py']