python efficiently filters out file instances at the end of specified filenames under folders

  • 2020-12-21 18:06:00
  • OfStack

As shown below:


import os

def anyTrue(predicate, sequence):
return True in map(predicate, sequence)

def filterFiles(folder, exts):
for fileName in os.listdir(folder):
if os.path.isdir(folder + '/' + fileName):
   filterFiles(folder + '/' + fileName, exts)
elif anyTrue(fileName.endswith, exts):
print fileName

exts = ['.md', '.yml', '.rst']
filterFiles('D:\\Twisted\\twisted-trunk', exts)


import os
import time
from itertools import imap
def anyTrue(predicate, sequence):
 return True in imap
(predicate, sequence)
 
def filterFiles(folder, exts):
 for fileName in os.listdir(folder):
  if os.path.isdir(folder + '/' + fileName):
   filterFiles(folder + '/' + fileName, exts)
  elif anyTrue(fileName.endswith, exts):
   print fileName

start = time.time()
exts = ['.md', '.yml', '.rst']
filterFiles('D:\\Twisted\\twisted-trunk', exts)
print('total time=%f' %(time.time()- start))

Related articles: