import ast, os libdir = 'C:/programs/Python35/Lib' dirs = [libdir] for item in os.scandir(libdir): if item.is_dir(): dirs.append(os.path.join(libdir, item.name)) for dir in dirs: os.chdir(dir) for fname in os.listdir(dir): if fname.endswith('.py'): with open(fname, encoding='utf-8') as f: try: src = f.read() except UnicodeDecodeError: pass try: compile(ast.parse(src), fname, 'exec') except (SyntaxError, Exception) as e: if not fname.startswith('bad'): print(dir, fname, e)