Как сравнить txt файлы в папке?
Пытаюсь сделать проверку каждого 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()
Источник: Stack Overflow на русском