я сейчас закину тебе скрипт, его надо переделать
надо добавить графический интерфейс
далее в скрипте прописаны пути по умолчанию откуда брать файлы и куда их сохранять, надо их запомнить и использовать как прописано в скрипте, но  сделать возможность менять эту настройку в графическом режиме, к примеру если ничего не менять то так скрипт и срабатывает после нажатия кнопки "старт" ее надо вывести на экран, а если поменять пути то скрипт должен запомнить последние пути и потом в дальнейшем их использовать (менять пути предполагается очень редко поэтому эту функцию надо вывести в самый низ приложения, надо сделать возможность выбора для каждого пути отдельно с описанием для чего этот путь предназначен)
вот скрипт
import os
import shutil
import re
import chardet
from tqdm import tqdm
import pyfiglet

# Указываем пути к папкам
first_folder_path = r"D:\_ProgTV"
second_folder_path = r"D:\_ProgTV\new"

# Проверка существования путей
if not os.path.exists(first_folder_path):
    print(f"Путь к первой папке не существует: {first_folder_path}")
    exit(1)

if not os.path.exists(second_folder_path):
    print(f"Путь ко второй папке не существует: {second_folder_path}")
    exit(1)

# Список имен файлов, которые нужно создать
file_names = [
    "_ntv9.txt", "_pro.txt", "_pro2.txt", "_sts m.txt", "_tnt m.txt", "_tv8.txt",
    "_TV1000 Megahit HD.txt", "_tv1000.txt", "_tv1000k.txt", "_tvc-21.txt", "_TVR Moldova.txt",
    "_еврокино.txt", "_Молдова.txt", "_action.txt", "_agro.txt", "_cinema1.txt", "_dtv.txt",
    "_ilusion.txt", "_ilusionpl.txt", "_interpl.txt", "_jurnaltv.txt", "_mir.txt", "_N4.txt"
]

# Удаление всех .txt файлов в первой папке
print("Удаление всех .txt файлов в первой папке...")
for file_name in tqdm(os.listdir(first_folder_path), desc="Удаление файлов", unit="file"):
    if file_name.endswith(".txt"):
        file_path = os.path.join(first_folder_path, file_name)
        try:
            os.remove(file_path)
        except Exception as e:
            print(f"Ошибка при удалении файла {file_name}: {e}")

# Создание файлов с содержимым <ASCII-WIN>
print("Создание файлов с содержимым '<ASCII-WIN>'...")
for file_name in tqdm(file_names, desc="Создание файлов", unit="file"):
    file_path = os.path.join(first_folder_path, file_name)
    try:
        with open(file_path, "w", encoding="utf-8") as f:
            f.write("<ASCII-WIN>")
    except Exception as e:
        print(f"Ошибка при создании файла {file_name}: {e}")

# Копирование файлов из второй папки в первую, если они существуют
print("Копирование файлов из второй папки в первую папку...")
for file_name in tqdm(file_names, desc="Копирование файлов", unit="file"):
    source_file_path = os.path.join(second_folder_path, file_name)
    destination_file_path = os.path.join(first_folder_path, file_name)
    if os.path.exists(source_file_path):
        try:
            shutil.copy2(source_file_path, destination_file_path)
        except Exception as e:
            print(f"Ошибка при копировании файла из {source_file_path} в {destination_file_path}: {e}")

# Функция для определения кодировки файла
def detect_encoding(file_path):
    with open(file_path, 'rb') as f:
        result = chardet.detect(f.read())
    return result['encoding']

# Поиск и удаление строк, начинающихся с <pstyle:TV-Kanal>, и замена двойных/тройных знаков конца строки на одинарный
print("Обработка файлов для замен и завершения строк...")
statistics = []
for file_name in tqdm(file_names, desc="Обработка файлов", unit="file"):
    file_path = os.path.join(first_folder_path, file_name)
    if os.path.exists(file_path):
        encoding = detect_encoding(file_path)
        try:
            with open(file_path, "r", encoding=encoding) as f:
                content = f.read()
        except UnicodeDecodeError:
            print(f"Ошибка кодировки при чтении файла {file_name}. Попробую использовать кодировку 'latin1'.")
            try:
                with open(file_path, "r", encoding='latin1') as f:
                    content = f.read()
            except Exception as e:
                print(f"Ошибка при чтении файла {file_name}: {e}")
                continue
        
        # Удаление строк, начинающихся с <pstyle:TV-Kanal>
        lines = content.splitlines()
        initial_count = len(lines)
        new_lines = [line for line in lines if not line.startswith("<pstyle:TV-Kanal>")]
        final_count = len(new_lines)
        replacements = initial_count - final_count
        
        # Замена двойных/тройных знаков конца строки на одинарный
        new_content = "\n".join(new_lines)
        new_content = re.sub(r"(\r?\n){2,}", "\n", new_content)
        
        # Сохраняем измененное содержимое обратно в файл
        try:
            with open(file_path, "w", encoding=encoding) as f:
                f.write(new_content)
        except UnicodeEncodeError:
            print(f"Ошибка кодировки при записи файла {file_name}. Попробую использовать кодировку 'latin1'.")
            try:
                with open(file_path, "w", encoding='latin1') as f:
                    f.write(new_content)
            except Exception as e:
                print(f"Ошибка при записи файла {file_name}: {e}")
                continue
        
        if replacements > 0:
            statistics.append(f"Файл: {file_name}, Замены: {replacements}")

# Закрытие всех файлов и обнуление переменных
del content
del lines
del new_lines

# Повторная обработка файлов для удаления первой строки <pstyle:TV-Text><cnxc:Column>
print("Поиск строки '<pstyle:TV-Text><cnxc:Column>' и её удаление...")
for file_name in tqdm(file_names, desc="Поиск конкретной строки", unit="file"):
    file_path = os.path.join(first_folder_path, file_name)
    if os.path.exists(file_path):
        encoding = detect_encoding(file_path)
        try:
            with open(file_path, "r", encoding=encoding) as f:
                lines = f.readlines()
        except UnicodeDecodeError:
            print(f"Ошибка кодировки при чтении файла {file_name}. Попробую использовать кодировку 'latin1'.")
            try:
                with open(file_path, "r", encoding='latin1') as f:
                    lines = f.readlines()
            except Exception as e:
                print(f"Ошибка при чтении файла {file_name}: {e}")
                continue
        
        with open(file_path, "w", encoding=encoding) as f:
            found_line = False
            for line in lines:
                if not found_line and "<pstyle:TV-Text><cnxc:Column>" in line:
                    found_line = True
                    continue  # Пропустить эту строку
                f.write(line)
        
        if found_line:
            print(f"Удалено первое упоминание '<pstyle:TV-Text><cnxc:Column>' из {file_name}")

# Вывод статистики на экран
if not statistics:
    print("Замены не были выполнены.")
else:
    for stat in statistics:
        print(stat)

# Вывод успешного завершения обработки в стиле ASCII-art
ascii_art = pyfiglet.figlet_format("TV-PROG", font="xtimes")
print(ascii_art)
print("\nVersion: 2.1 - August 2024")
print("Copyright: <PRESIDIO_ANONYMIZED_EMAIL_ADDRESS>")