Files
toads/length.py
T
Dmitrium12 a877b80606 починил все баги
начал доставать всё из базы
сделал новую игру
2023-01-26 17:01:39 +07:00

75 lines
2.2 KiB
Python

import os
directory = "."
directory_depth = 1000 # How deep you would like to go
extensions_to_consider = [".py"] # Change to ["all"] to include all extensions
exclude_filenames = ["venv", ".idea", "__pycache__", "cache", "length.py"]
skip_file_error_list = True
this_file_dir = os.path.realpath(__file__)
print("Path to ignore:", this_file_dir)
print("=====================================")
def _walk(path, depth):
"""Recursively list files and directories up to a certain depth"""
depth -= 1
with os.scandir(path) as p:
for entry in p:
skip_entry = False
for fName in exclude_filenames:
if entry.path.endswith(fName):
skip_entry = True
break
if skip_entry:
print("Skipping entry", entry.path)
continue
yield entry.path
if entry.is_dir() and depth > 0:
yield from _walk(entry.path, depth)
files = list(_walk(directory, directory_depth))
print("=====================================")
file_err_list = []
line_count = 0
len_files = len(files)
for i, file_dir in enumerate(files):
if file_dir == this_file_dir:
print("=[Rejected file directory", file_dir, "]=")
continue
if not os.path.isfile(file_dir):
continue
skip_File = True
for ending in extensions_to_consider:
if file_dir.endswith(ending) or ending == "all":
skip_File = False
if not skip_File:
try:
file = open(file_dir, "r")
local_count = 0
for line in file:
if line != "\n":
local_count += 1
print("({:.1f}%)".format(100 * i / len_files), file_dir, "|", local_count)
line_count += local_count
file.close()
except Exception as e:
file_err_list.append([file_dir, e])
continue
print("=====================================")
print("File Count Errors:", len(file_err_list))
if not skip_file_error_list:
for file in file_err_list:
print(file_err_list)
print("=====================================")
print("Total lines |", line_count)