Update iptv_udp.py

This commit is contained in:
frxz751113
2024-08-12 16:23:46 +08:00
committed by GitHub
parent b96d99b6ad
commit b338868b9c
+44 -3
View File
@@ -294,17 +294,58 @@ def main():
print(f"电视频道成功写入IPTV_UDP") print(f"电视频道成功写入IPTV_UDP")
main() main()
########################################################################################################################################################################################
#################文本排序
# 打开原始文件读取内容,并写入新文件
with open('IPTV_UDP', 'r', encoding='utf-8') as file:
lines = file.readlines()
# 定义一个函数,用于提取每行的第一个数字
def extract_first_number(line):
match = re.search(r'\d+', line)
return int(match.group()) if match else float('inf')
# 对列表中的行进行排序
# 按照第一个数字的大小排列,如果不存在数字则按中文拼音排序
sorted_lines = sorted(lines, key=lambda x: (not 'CCTV' in x, extract_first_number(x) if 'CCTV' in x else lazy_pinyin(x.strip())))
# 将排序后的行写入新的utf-8编码的文本文件,文件名基于原文件名
output_file_path = "sorted_" + os.path.basename(file_path)
# 写入新文件
with open('IPTV_UDP', "w", encoding="utf-8") as file:
for line in sorted_lines:
file.write(line)
print(f"文件已排序并保存为: {output_file_path}")
########################################################################################################################################################################################
for line in fileinput.input("playlist/IPTV_UDP", inplace=True): #打开文件,并对其进行关键词原地替换 for line in fileinput.input("playlist/IPTV_UDP", inplace=True): #打开文件,并对其进行关键词原地替换
line = line.replace("CHC电影", "CHC影迷电影") line = line.replace("CHC电影", "CHC影迷电影")
line = line.replace("高清电影", "影迷电影") line = line.replace("高清电影", "影迷电影")
print(line, end="") #设置end="",避免输出多余的换行符 print(line, end="") #设置end="",避免输出多余的换行符
#从整理好的文本中按类别进行特定关键词提取#
keywords = ['CCTV', '剧场', '影院', '电影'] # 需要提取的关键字列表
pattern = '|'.join(keywords) # 创建正则表达式模式,匹配任意一个关键字
#pattern = r"^(.*?),(?!#genre#)(.*?)$" #以分类直接复制
with open('playlist/IPTV_UDP', 'r', encoding='utf-8') as file, open('c0.txt', 'w', encoding='utf-8') as c0: #定义临时文件名
c0.write('\组播央视,#genre#\n') #写入临时文件名$GD
for line in file:
if re.search(pattern, line): # 如果行中有任意关键字
c0.write(line) # 将该行写入输出文件 #定义临时文件
#从整理好的文本中按类别进行特定关键词提取# #从整理好的文本中按类别进行特定关键词提取#
keywords = ['爱动漫', '爱怀旧', '爱经典', '爱科幻', '爱幼教', '爱青春', '爱院线', '爱悬疑'] # 需要提取的关键字列表 keywords = ['爱动漫', '爱怀旧', '爱经典', '爱科幻', '爱幼教', '爱青春', '爱院线', '爱悬疑'] # 需要提取的关键字列表
pattern = '|'.join(keywords) # 创建正则表达式模式,匹配任意一个关键字 pattern = '|'.join(keywords) # 创建正则表达式模式,匹配任意一个关键字
#pattern = r"^(.*?),(?!#genre#)(.*?)$" #以分类直接复制 #pattern = r"^(.*?),(?!#genre#)(.*?)$" #以分类直接复制
with open('playlist/IPTV_UDP', 'r', encoding='utf-8') as file, open('c1.txt', 'w', encoding='utf-8') as c1: #定义临时文件名 with open('playlist/IPTV_UDP', 'r', encoding='utf-8') as file, open('c1.txt', 'w', encoding='utf-8') as c1: #定义临时文件名
c1.write('\niHOT系列,#genre#\n') #写入临时文件名$GD c1.write('\组播央视,#genre#\n') #写入临时文件名$GD
for line in file: for line in file:
if '$GD' not in line and '4K' not in line: if '$GD' not in line and '4K' not in line:
if re.search(pattern, line): # 如果行中有任意关键字 if re.search(pattern, line): # 如果行中有任意关键字
@@ -429,7 +470,7 @@ print('删除的行已保存到:', deleted_lines_file_path)
#合并所有频道文件# #合并所有频道文件#
# 读取要合并的频道文件,并生成临时文件#合并所有频道文件# # 读取要合并的频道文件,并生成临时文件#合并所有频道文件#
file_contents = [] file_contents = []
file_paths = ["a0.txt", "港澳.txt", "df0.txt", "f.txt", "f1.txt"] # 替换为实际的文件路径列表# file_paths = ["a0.txt", "港澳.txt", "df0.txt", "c0.txt", "c1.txt", "f.txt", "f1.txt"] # 替换为实际的文件路径列表#
for file_path in file_paths: # for file_path in file_paths: #
with open(file_path, 'r', encoding="utf-8") as file: # with open(file_path, 'r', encoding="utf-8") as file: #
content = file.read() content = file.read()
@@ -541,7 +582,7 @@ def txt_to_m3u(input_file, output_file):
# 将txt文件转换为m3u文件 # 将txt文件转换为m3u文件
txt_to_m3u('综合源.txt', '综合源.m3u') txt_to_m3u('综合源.txt', '综合源.m3u')
#任务结束,删除不必要的过程文件# #任务结束,删除不必要的过程文件#
files_to_remove = ["TW.txt", "a.txt", "a0.txt", "港澳.txt", "playlist/IPTV_UDP", "df0.txt", "sr1.txt", "c1.txt", \ files_to_remove = ["TW.txt", "a.txt", "a0.txt", "港澳.txt", "playlist/IPTV_UDP", "df0.txt", "sr1.txt", "c0.txt", "c1.txt", \
"f.txt", "f1.txt", "playlist/酒店源#.txt"] "f.txt", "f1.txt", "playlist/酒店源#.txt"]
for file in files_to_remove: for file in files_to_remove:
if os.path.exists(file): if os.path.exists(file):