#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import glob import timeit def walk(): #result = [[file for file in files if file.endswith('.py')] for path, dirs, files in os.walk('.')] result = [] for path, dirs, files in os.walk('.'): for file in files: if file.endswith('.py'): result.append(file) return result def iglob(): result = [] for file in glob.iglob('**/*', recursive=True): if file.endswith('.py'): result.append(file) return result def iglob2(): result = [] for file in glob.iglob('**/*.py', recursive=True): result.append(file) return result def main(): # os.chdir('./') num_of_exec = 10 print(timeit.timeit(walk, number=num_of_exec) / num_of_exec) print(timeit.timeit(iglob, number=num_of_exec) / num_of_exec) print(timeit.timeit(iglob2, number=num_of_exec) / num_of_exec) if __name__ == '__main__': main()