如何使用 filter 和 map 函数在以 Python结尾.txt
或以 Python 结尾的目录中查找文件?.py
问问题
7002 次
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 回答