Files
PrimoPearlBot/ProjectsFile/project_count_line.py

45 lines
2.1 KiB
Python

# project_count_line.py
# Файл для подсчета количества строк и файлов
import os
# Настройка экспорта модулей
__all__ = ("count_lines_in_python_files",)
type_messages = "count_lines_project"
# Функция подсчета строк и кода python3
def count_lines_in_python_files(directory):
total_lines = 0
total_files = 0
# Проходим по всем директориям и файлам в заданной директории
for root, dirs, files in os.walk(directory):
# Исключаем определенные директории
if any(excluded in root for excluded in ['.venv', '.env', '.git', '.idea', '__pycache__']):
continue
for file in files:
if file.endswith('.py'): # Проверяем, что файл имеет расширение .py
total_files += 1
file_path = os.path.join(root, file)
try:
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
total_lines += len(lines)
except UnicodeDecodeError:
# Если файл не может быть прочитан в utf-8, логируем предупреждение и продолжаем
print(f"Предупреждение: невозможно прочитать файл {file_path} из-за ошибки кодировки.")
except Exception as e:
# Логируем любую другую ошибку и продолжаем
print(f"Ошибка при обработке файла {file_path}: {e}")
return total_lines, total_files
# Задайте путь к вашей директории
directory_path = r'../'
lines_count, files_count = count_lines_in_python_files(directory_path)
print(f"Общее количество строк в файлах .py: {lines_count}")
print(f"Общее количество файлов .py: {files_count}")