如何使用过滤器和地图功能在Python中找到以.txt
或.py
结尾的目录中的文件?
答案 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']