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文件相关推荐

  1. python图标的演变_把Python脚本生成exe文件并添加版本信息和自定义图标

    pyinstaller和py2exe把Python脚本生成exe文件,并添加版本信息和自定义图标. 写了一个查找产品通道号的小程序,目前还没进行异常处理. 以下是程序源码. # -*- coding: ...

  2. python 脚本转exe文件

    python 脚本转exe文件 # 下载pyinstaller pip3 install pyinstallerpyinstaller -F main.py -n 转XXX小工具 --noconsol ...

  3. 利用python脚本程序监控文件被修改

    需求: 利用python编写监控程序,监控一个文件目录,当目录下的文件发生改变时,实现有修改就发报警邮件 邮件使用QQ邮箱,需要开启smtp,使用手机发生短信,腾讯会给你发邮箱密码.如下所示: 把这个 ...

  4. 清除python shell中的内容_如何使用python脚本定时清空文件内容?

    我们一直在对大家强调关于python脚本的使用,但是有部分同学提出疑问,就是关于上期跟大家说的shell脚本没有实质性的使用效果,如果在实际应用里,要怎么使用这个脚本,它又能实现什么效果,其实针对这个 ...

  5. python脚本转lua_初次使用Python脚本,proto协议文件转Lua代码

    使用IntelliJ IDEA编辑器编写Lua脚本的时候,安装一个插件 "EmmyLua" 可以对有代码提示功能 想把protoBuf协议文件转成Lua代码,然后给出代码提示 第一 ...

  6. cmd运行python脚本处理其他文件_如何在cmd命令行里运行python脚本

    在电脑安装好python软件之后即可通过cmd命令行运行python脚本文件.不过有些小伙伴不懂,今天小编我就来说一下cmd命令行如何运行python脚本文件. 工具/原料 电脑 python 3 方 ...

  7. python脚本修改hosts文件

    记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本.本来以为感觉很简单 ...

  8. python脚本将json文件生成C语言结构体

    1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...

  9. Python批量拆分Excel文件中已合并的单元格

    中国大学MOOC"Python程序设计基础"第4次开课 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大 ...

最新文章

  1. 2021年人工神经网络第四次作业-第一题:LeNet对于水果与动物进行分类
  2. php 开源 流量统计,5款开源的PHP网站流量统计应用程序
  3. java 优雅退出_java – 优雅地退出应用程序?
  4. 主线程 唤醒_Java等待唤醒机制统计子线程运行时间的方式及其疑问
  5. HDU 1559 最大子矩阵
  6. STL——关联式容器
  7. jpa mysql脚本迁移_JPA通过LOAD DATA LOCAL INFILE大批量导入数据到MySQL
  8. (转)android之Fragment(官网资料翻译)
  9. 视频不显示的分析方法
  10. 调度流程图_怎么做大数据工作流调度系统?大厂架构师一语点破!
  11. Android应用开发之统计App时长
  12. 单片机音频信号分析仪
  13. 0ctf-2016 pwn-warmup writeup
  14. java在哪里报错_BirthDate.java程序错误在哪里运行不出来写着 c :myjavajavac Test.java Test.java:46 找不到符号 符号...
  15. 基于ESP32的智能鱼缸系统
  16. PHP与ECMP,2019 NECMP东北音乐产业发展论坛在沈举行
  17. cocos植物大战僵尸(三)游戏场景:地图滚动
  18. 小米CC9系列发布会,要用文科设计打动女生的雷军真的懂女生么
  19. vue项目中表格删除数据页码显示注意点
  20. 基于单片机的电子秤(计价/播报)电路设计(#0223)

热门文章

  1. 卡路里计算器_隐私条款
  2. 在Excel中筛选数据透视表源数据
  3. 文献解读:中国黑龙江省蜱虫传播病毒的病毒学分析
  4. CSS前端基础知识梳理
  5. 并发笔记(八)JUC原子类以及线程池(Executors)
  6. 【牛客挑战赛46】F.柠檬树
  7. js 四舍五入bug解决方法
  8. “设计模式之禅”——六大设计原则详解解读
  9. 适合小本创业的必做的赚钱项目
  10. 【SDL游戏编程入门第十六卷】输出中文SDL_ttf以及设置中文标题