经常会遇到在目录下过滤特定后缀名的文件的需求。自己总结下面两个方法:
第一种方法、比较常规:代码如下
#!/usr/bin/python
def endWith(s,*endstring):
array = map(s.endswith,endstring)
if True in array:
return True
else:
return False
if __name__ == '__main__':
import os
s = os.listdir('/root/')
f_file = []
for i in s:
if endWith(i,'.txt','.py'):
print i,
执行结果如下:
第二种方法:个人比较倾向这种方法,这种方法可定制性更强,代码如下:
#!/usr/bin/python
def endWith(*endstring):
ends = endstring
def run(s):
f = map(s.endswith,ends)
if True in f: return s
return run
if __name__ == '__main__':
import os
list_file = os.listdir('/root')
a = endWith('.txt','.py')
f_file = filter(a,list_file)
for i in f_file: print i,
执行结果如下: