用PYTHON脚本拆分M3U文件
M3U文件是播放列表文件,里面记录的是一条一条的音频或视频资源地址。
最近从网上收集了一些在线电视的资源列表,这M3U文件的形式,但这个列表长度达到1000多项内容。
而且这里面包含了太多已经失效的资源地址,手机上的APP又没有单独删除某一条地址的功能,
于是只能把它拆分为一个M3U文件一个资源,方便在手机上管理和删除。
先看看这个M3U文件长什么样:
#EXTM3U
#EXTINF:-1 ,CCTV-1蓝光
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226226/1.m3u8
#EXTINF:-1 ,CCTV-1蓝光
http://112.50.243.8/PLTV/88888888/224/3221225922/1.m3u8
#EXTINF:-1 ,CCTV-2蓝光
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226230/1.m3u8
#EXTINF:-1 ,CCTV-2蓝光
http://112.50.243.8/PLTV/88888888/224/3221225923/1.m3u8
#EXTINF:-1 ,CCTV-3蓝光
http://117.169.124.36:6610/ysten-businessmobile/live/cctv-3/1.m3u8
#EXTINF:-1 ,CCTV-3蓝光
http://223.110.241.130:6610/gitv/live1/G_CCTV-3-HQ/.m3u8
#EXTINF:-1 ,CCTV-4蓝光
http://111.13.111.242/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226314/1.m3u8
#EXTINF:-1 ,CCTV-4蓝光
http://112.50.243.8/PLTV/88888888/224/3221225802/1.m3u8
#EXTINF:-1 ,CCTV-5蓝光
http://223.110.241.130:6610/gitv/live1/G_CCTV-5-HQ/G_CCTV-5-HQ/
#EXTINF:-1 ,CCTV-5蓝光
http://112.17.40.145/PLTV/88888888/224/3221226687/index.m3u8
第一行是#EXTM3U表明文件类型。
第二行#EXTINF后面跟的是视频长度和视频名称。
第三行http开头的是视频在线播放的地址。
可以看出来这是个比较简单的文本格式,可以写个简单的PYTHON脚本把它进行拆分。
下面是我写好的脚本:
#从A.M3U读取文本,导出A1,A2...An.M3U.
import io
import os#生成文件
def make_m3u_file(name, link):obj = open(name, mode="w+", encoding="utf8")obj.write("#EXTM3U\n#EXTINF:-1,")obj.write(name+"\n")obj.write(link)obj.close#获取文件名,并去除非法字符
def get_item_name(extinf):name = extinf.split(",", 1)[1]name = name.replace(" ", "")name = name.replace(":", ".")name = name.replace("/", ".")name = name.replace("\\", ".")name = name.replace("|", ".")name = name.replace("?", ".")name = name.replace("*", ".")name = name.replace("<", ".")name = name.replace(">", ".")return name+".m3u"#处理输入的文本文件
def m3u_dump(m3u_file):item_name = ""item_link = ""lines = m3u_file.readlines()for line in lines:line = line.rstrip("\r\n")if line.startswith("#EXTINF"):item_name = get_item_name(line)if line.startswith("http"):item_link = lineprint(item_name, item_link);make_m3u_file(item_name, item_link)
###################################################
#程序入口
m3u_file_name = input("输入文件名:")
m3u_file_obj = open(m3u_file_name, "r", encoding="utf8")
m3u_dump(m3u_file_obj)
m3u_file_obj.close()
print("处理完成!")
启动这个脚本后,输入M3U文件的路径,会在当前工作目录,生成一大堆单个的M3U文件。
用PYTHON脚本拆分M3U文件相关推荐
- python图标的演变_把Python脚本生成exe文件并添加版本信息和自定义图标
pyinstaller和py2exe把Python脚本生成exe文件,并添加版本信息和自定义图标. 写了一个查找产品通道号的小程序,目前还没进行异常处理. 以下是程序源码. # -*- coding: ...
- python 脚本转exe文件
python 脚本转exe文件 # 下载pyinstaller pip3 install pyinstallerpyinstaller -F main.py -n 转XXX小工具 --noconsol ...
- 利用python脚本程序监控文件被修改
需求: 利用python编写监控程序,监控一个文件目录,当目录下的文件发生改变时,实现有修改就发报警邮件 邮件使用QQ邮箱,需要开启smtp,使用手机发生短信,腾讯会给你发邮箱密码.如下所示: 把这个 ...
- 清除python shell中的内容_如何使用python脚本定时清空文件内容?
我们一直在对大家强调关于python脚本的使用,但是有部分同学提出疑问,就是关于上期跟大家说的shell脚本没有实质性的使用效果,如果在实际应用里,要怎么使用这个脚本,它又能实现什么效果,其实针对这个 ...
- python脚本转lua_初次使用Python脚本,proto协议文件转Lua代码
使用IntelliJ IDEA编辑器编写Lua脚本的时候,安装一个插件 "EmmyLua" 可以对有代码提示功能 想把protoBuf协议文件转成Lua代码,然后给出代码提示 第一 ...
- cmd运行python脚本处理其他文件_如何在cmd命令行里运行python脚本
在电脑安装好python软件之后即可通过cmd命令行运行python脚本文件.不过有些小伙伴不懂,今天小编我就来说一下cmd命令行如何运行python脚本文件. 工具/原料 电脑 python 3 方 ...
- python脚本修改hosts文件
记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本.本来以为感觉很简单 ...
- python脚本将json文件生成C语言结构体
1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...
- Python批量拆分Excel文件中已合并的单元格
中国大学MOOC"Python程序设计基础"第4次开课 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大 ...
最新文章
- 2021年人工神经网络第四次作业-第一题:LeNet对于水果与动物进行分类
- php 开源 流量统计,5款开源的PHP网站流量统计应用程序
- java 优雅退出_java – 优雅地退出应用程序?
- 主线程 唤醒_Java等待唤醒机制统计子线程运行时间的方式及其疑问
- HDU 1559 最大子矩阵
- STL——关联式容器
- jpa mysql脚本迁移_JPA通过LOAD DATA LOCAL INFILE大批量导入数据到MySQL
- (转)android之Fragment(官网资料翻译)
- 视频不显示的分析方法
- 调度流程图_怎么做大数据工作流调度系统?大厂架构师一语点破!
- Android应用开发之统计App时长
- 单片机音频信号分析仪
- 0ctf-2016 pwn-warmup writeup
- java在哪里报错_BirthDate.java程序错误在哪里运行不出来写着 c :myjavajavac Test.java Test.java:46 找不到符号 符号...
- 基于ESP32的智能鱼缸系统
- PHP与ECMP,2019 NECMP东北音乐产业发展论坛在沈举行
- cocos植物大战僵尸(三)游戏场景:地图滚动
- 小米CC9系列发布会,要用文科设计打动女生的雷军真的懂女生么
- vue项目中表格删除数据页码显示注意点
- 基于单片机的电子秤(计价/播报)电路设计(#0223)