Как сравнить txt файлы в папке?

Рейтинг: 1Ответов: 0Опубликовано: 21.03.2023

Пытаюсь сделать проверку каждого txt файла на одинаковое количество строк, но код создаёт только папку и в неё помещает 1 txt файл, в папке 2000 txt. Помогите пожалуйста реализовать сохранение файлов с одинаковым количеством строк в папку с названием файла или это можно как-то проще сделать? Заранее благодарен

import os
import shutil

path = 'files/sdfdsf/all_files'
path_rab = 'files/sdfdsf/rabotaet'


def creater():
    for i in range(len(os.listdir(path))):
        for file_txt in os.listdir(path):
            if file_txt.endswith('.txt'):
                if not os.path.exists(f'{path_rab}'):
                    os.mkdir(f'{path_rab}')
                if not os.path.exists(f'{path_rab}/{file_txt[:-4]}'):
                    os.mkdir(f'{path_rab}/{file_txt[:-4]}')
                    if os.path.exists(f'{path_rab}/{file_txt[:-4]}'):
                        new_location = shutil.copy(f'{path}/{file_txt}',
                                    f'{path_rab}/{file_txt[:-4]}')

                        print(
                        "Одинаковый txt файл скопирован с папки " f'{path}/{file_txt} в папку ' f'{new_location}')


def checker_path():
    for i in range(len(os.listdir(path))):
        for file_txt in os.listdir(path):
            if file_txt.endswith('.txt'):
                if len(open(f'{path}/{file_txt}').readlines()) == len(
                        open(f'{path_rab}/{file_txt[:-4]}/{file_txt}').readlines()):
                    print(f'Одинаковые файлы:{path}/{file_txt} - {path_rab}/{file_txt[:-4]}/{file_txt}')
                if not os.path.exists(f'{path_rab}/{file_txt[:-4]}/{file_txt[:-4]}'):
                    os.mkdir(f'{path_rab}/{file_txt[:-4]}/{file_txt[:-4]}')
                if os.path.exists(f'{path_rab}/{file_txt[:-4]}/{file_txt[:-4]}'):
                    if os.path.exists(f'{path}/{file_txt}'):
                        new_location1 = shutil.move(f'{path}/{file_txt}',
                                                    f'{path_rab}/{file_txt[:-4]}/{file_txt[:-4]}')
                        print(
                            "Одинаковый txt файл финально скопирован с папки " f'{path}/{file_txt} в папку 'f'{new_location1}')


if __name__ == "__main__":
    creater()
    checker_path()

Ответы

Ответов пока нет.