Здравствуйте.
Помогите пожалуйста реализовать следующее:
Попытался как то написать, но так и не смог реализовать список result, чтобы из него в дальнейшем перенести на новый файл m3u8, но не могу сделать перебор из внутри key словаря. Получаю только первые значения групп ((
В коде мне необходимо иметь возможность удалять по группе, к примеру:
Помогите пожалуйста реализовать следующее:
Код:
#EXTM3U
#EXTINF:0 tvg-rec="1",РБК-ТВ
#EXTGRP:новости
http://xxx/iptv/yyy/106/index.m3u8
---------- тут новой строки нет, создал для наглядности
#EXTINF:0 tvg-rec="0",Пятый канал
#EXTGRP:новости
http://xxx/iptv/yyy/112/index.m3u8
---------- тут новой строки нет, создал для наглядности
#EXTINF:0 tvg-rec="0",Ностальгия
#EXTGRP:кино
http://xxx/iptv/yyy/102/index.m3u8
---------- тут новой строки нет, создал для наглядности
#EXTINF:0 tvg-rec="1",СТС Love
#EXTGRP:кино
http://xxx/iptv/yyy/103/index.m3u8
...
Код:
#EXTM3U
#EXTINF:0 group-title="Новости" tvg-name="РБК-ТВ" tvg-logo="https://some_site/РБК-ТВ.png" tvg-rec="1",РБК-ТВ
http://xxx/iptv/yyy/106/index.m3u8
---------- тут новой строки нет, создал для наглядности
#EXTINF:0 group-title="Новости" tvg-name="Пятый канал" tvg-logo="https://some_site/Пятый канал.png" tvg-rec="0",Пятый канал
http://xxx/iptv/yyy/112/index.m3u8
---------- тут новой строки нет, создал для наглядности
#EXTINF:0 group-title="Кино" tvg-name="Ностальгия" tvg-logo="https://some_site/Ностальгия.png" tvg-rec="0",Ностальгия
http://xxx/iptv/yyy/102/index.m3u8
---------- тут новой строки нет, создал для наглядности
#EXTINF:0 group-title="Кино" tvg-name="СТС Love" tvg-logo="https://some_site/СТС Love.png" tvg-rec="1",СТС Love
http://xxx/iptv/yyy/103/index.m3u8
...
Python:
#import requests
#
#
# url = 'http://some_site.kz/playlist.m3u8'
# myfile = requests.get(url)
# open('_7.m3u8', 'wb').write(myfile.content)
groupSet = set()
channelsDict = {}
result = []
with open('_7.m3u8', 'r', encoding='utf8') as playlist1:
for line1 in playlist1:
if line1.find('#EXTGRP:') != -1:
group = line1.replace('#EXTGRP:', '').strip()
if group != 'HD':
group = group[0].upper() + group[1:]
groupSet.add(group)
name = prev_line.strip().split(',')
urls = next(playlist1)
channelsDict.setdefault(group, []).append(name)
channelsDict.setdefault(group, []).append(urls)
prev_line = line1
#channels.pop('Новости')
#channels.pop('Кино')
result.append('#EXTM3U\n')
for grp, chnlUrl in channelsDict.items():
result.append(f'{chnlUrl[0][0].lstrip()} group-title="{grp}" tvg-name="{chnlUrl[0][1]}",{chnlUrl[0][1]}\n{chnlUrl[1]}')
print(*result)
Python:
#channels.pop('Новости')
#channels.pop('Кино')
- ОС windows 10
- Python (3.8.2)
- библиотека requests
Вложения
Последнее редактирование: