Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2022, 09:14   #1
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию Добавить функцию в рабочий скрипт

Windows 10
IDLE (Python 3.10 64-bit)
---------------------------
Есть рабочий скрипт для удаления дубликатов строк в текстовом файле:
Код:
with open('plist.m3u', 'r') as f:
    lines = f.readlines()

seen_lines = set()
with open('plist.m3u', 'w') as f:
    for line in lines:
        if line not in seen_lines:
            seen_lines.add(line)
            f.write(line)
Как в него добавить возможность чтобы удалялась предыдущая строка, перед каждым найденным дубликатом.
Пример:
#EXTINF:-1,Родной канал HD --- эта строка осталась. Её нужно тоже удалить.
https://n1.slavmir.tv/live/slavmir/playlist.m3u8 --- эта строка удалена скриптом.
-------------------------
#EXTINF:-1,Родной канал HD ---- эти строки могут быть разными. Названия каналов.
Но начинаются они всегда одинаково --- #EXTINF:-1,
satfan вне форума Ответить с цитированием
Старый 21.01.2022, 09:21   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
with open('plist.m3u', 'r') as f:
    lines = f.readlines()

seen_lines = set()
with open('plist.m3u', 'w') as f:
    for line in lines:
        if line.startswith('#EXTINF:-1,'):
            saved_line = line
            continue
        if line not in seen_lines:
            seen_lines.add(line)
            f.write(saved_line)
            f.write(line)
Вроде работает, но лучше писать в другой файл результат, во избежание потерь.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.01.2022, 09:34   #3
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Спасибо BDA
Ок.
Здоровья Вам и Удачи.
satfan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть скрипт сайта,нужно добавить функцию edgar54545 Фриланс 0 18.09.2018 17:48
Добавить функцию в рабочий модуль для отображения кирилицы в СМС. Как? Massaget Работа с сетью в Delphi 0 27.09.2015 16:01
Перенес рабочий скрипт и он перестал работать Mick_20 JavaScript, Ajax 2 17.07.2014 13:02
Рабочий скрипт онлайн казино gamerkaz Фриланс 3 19.03.2011 22:56