1

如何使用 filter 和 map 函数在以 Python结尾.txt或以 Python 结尾的目录中查找文件?.py

4

4 回答 4

5

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

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

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

于 2012-11-28T05:20:52.893 回答
4

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

[x for x in os.listdir(os.curdir) if os.path.splitext(x)[1] in ('.txt', '.py')]
于 2012-11-28T05:50:50.250 回答
2

这里有两种方法:

纯函数式方法:

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

列表理解方法:

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

希望这可以帮助 :-)

于 2012-11-28T06:55:50.343 回答
0

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

>>> import glob    
>>> glob.glob('*.py')
['test.py', 'a.py', 'b.py']
于 2012-11-28T06:00:40.003 回答