Python的知识点运用-2(排序&&找差值及修正ts合成顺序)

这篇具有很好参考价值的文章主要介绍了Python的知识点运用-2(排序&&找差值及修正ts合成顺序)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本章内容,涉及到上一章的视频爬虫,但是问题不大。最主要还是基础内容。

基础内容:排序,找出缺失值。

学习本章的前,我是建议去跑一遍gitee上的代码的。


排序问题由来

视频获取后,根据命名,排序是错的。问题除了命名以外还有一个因素就是多线程并发的原因。

好了,看图说话;Python的知识点运用-2(排序&&找差值及修正ts合成顺序)Python的知识点运用-2(排序&&找差值及修正ts合成顺序)看到了吗,顺序还是很明显不对的,这样合成视频的时候,那就是十分混乱的。所以需要解决一下。

def sava_Video(self):
        """合成代码"""
        path = 'report/'
        save_list = []
        files = os.listdir(path)
        print(len(files),[_[:-3] for _ in files])
        with open('res.txt','r',encoding='utf-8') as r:
            values = r.read()
            sorted_list = [x[-12:-4] for _, x in sorted(zip(files, eval(values)))]
            print(len(sorted_list),sorted_list)

总体的代码就是这样了。跑一下看看:

Python的知识点运用-2(排序&&找差值及修正ts合成顺序)看到,还是不一样啊,别急,上面的打印是ts文件的,这正是我要处理的。

Python的知识点运用-2(排序&&找差值及修正ts合成顺序)这样看,基本上以对上了,没错了。

为什么这么写?因为傻了。这样本质上并没有排序。

这也证明了,代码还是写少了。

思路是这样没错,但是,其实并没有必要。

正解: 我只需要获取

with open('res.txt','r',encoding='utf-8') as r:
      values = r.read()

即可,为什么,不是需要排序然后合成吗?

这就是误区,为什么一定要给ts文件排序?

为什么一定要读取下载好的ts文件名称进行 合并,这不就把简单的事情复杂化了吗!

我们只需要获取.m3u8解析出来的ts文件名称序列即可,因为这已经是排序的了。然后我们提取关键字进步查找合并即可。

def sava_Video(self):
        """合成代码"""
        path = 'report/'
        files = os.listdir(path)
        print(len(files),[_[:-3] for _ in files])
        with open('res.txt','r',encoding='utf-8') as r:
            values = r.read()
        for file_path in eval(values):
            with open(path+file_path[-12:-4]+'.ts', 'rb') as f1:
                with open(path + "电影.mp4", 'ab') as f2:
                            f2.write(f1.read())

看到了吗。挖取名称,按照顺序循环,查找指定path中的文件名一一合并即可,不需要再对files中的ts文件进行排序了。

再次排序这样做会让合并出的mp4播放起来卡顿。

找出缺失值

再上面的基础上,我还整了一个错误,

sorted_list = [x[-12:-4] for _, x in sorted(zip(files[:-3], eval(values)))]

嗯哼,瞬间麻痹,排序出来少了三个值,为此没多想,直接找少了哪三个值。

你会怎么想?循环判断?还是什么?

集合解法:

file_set = set([_[:-3] for _ in files])
list_set = set(sorted_list)

missing_set = file_set - list_set
missing_values = list(missing_set)
print("缺失值:",missing_values)

这就搞定了,少了什么值就出来了。然而并没有什么卵用,刚开始的思路纠错了。

好了,本章修正后的获取电影源码放在了:https://gitee.com/qinganan_admin/reptile-case/tree/master/%E7%94%B5%E5%BD%B1

——————修成合成顺序.py————————文章来源地址https://www.toymoban.com/news/detail-408896.html

到了这里,关于Python的知识点运用-2(排序&&找差值及修正ts合成顺序)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 知识点分享一:utf8 字符集和排序规则

    我们经常能在数据库中看到这些: utf8mb4 和 utf8, utf8mb4_unicode_ci, utf8mb4_general_ci, utf8mb4_bin 分别代表什么意思呢? 其实他们表示的是字符集 和 排序规则 字符集:就是用来定义字符在数据库中的编码的集合。 排序规则:用来定义比较字符串的方式。 字符集和排序规则是一对多的关

    2024年02月07日
    浏览(49)
  • 持续不断更新中... 自己整理的一些前端知识点以及前端面试题,包括vue2,vue3,js,ts,css,微信小程序等

    答: 在普通的前端项目工程中,在script标签中增加setup即可使用api 使用setup()钩子函数 答: 不要在计算属性中进行异步请求或者更改DOM 不要直接修改computed的值 区别: 计算属性值基于其响应式依赖被缓存,意思就是只要他之前的依赖不发生变化,那么调用他只会返回之前缓

    2024年02月11日
    浏览(63)
  • 【python知识点】锦集

    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/132368704 出自【进步*于辰的博客】 注:本文可能不适合 0-Python 基础的博友,因为对于各类知识点,我阐述的宗旨是“ 阐明使用细节 ”,而不是基础知识。 细节、

    2024年02月12日
    浏览(44)
  • Python函数知识点

         函数是指一段可以直接被另一段程序或代码引用的程序或代码,也叫做子程序、方法。现阶段可以理解成函数是带名字的代码块。 函数需要先定义再使用!     举个例子来说,想要判断一个三角形是不是直角三角形,需要用到勾股定理,只有先明确的定义出勾股定理是

    2023年04月09日
    浏览(41)
  • Python爬虫基础知识点

    Python爬虫是使用Python编写的程序,可以自动抓取互联网上的数据。常用的Python爬虫框架包括Scrapy、BeautifulSoup、Requests等。Python爬虫可以应用于众多场合,如大数据分析、信息监测、数据挖掘和机器学习等领域。那么新手应该如何学习python爬虫呢? 以下是Python爬虫的基础知识:

    2024年02月08日
    浏览(55)
  • PYTHON知识点学习-字典

    🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由 Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️ 📝个人主页:Aileen_0v0🧸—CSDN博客 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏:Aileen_0v

    2024年02月09日
    浏览(51)
  • Python基础知识点入门

    初学Python时,以下是一些基础知识点和示例,以帮助你建立坚实的编程基础。 1. 变量和数据类型 Python中的变量用于存储数据。以下是一些常见的数据类型和示例: 整数(int) 浮点数(float) 字符串(str) 布尔值(bool) 2. 列表(List) 列表是一种有序的数据结构,可以存储

    2024年02月07日
    浏览(47)
  • Python小姿势 - 知识点:

    知识点: Python的字符串格式化 标题: Python字符串格式化实例解析 顺便介绍一下我的另一篇专栏, 《100天精通Python - 快速入门到黑科技》专栏 ,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主 ,旨在帮助没有语言基础的

    2024年02月01日
    浏览(49)
  • Python知识点(史上最全)

    Python期末考试知识点(史上最全) python简介 type()不会认为子类是一种父类类型。 isinstance()会认为子类是一种父类类型 基础语法 运算符: 算术运算符: 多了一个**,代表 幂方 5**5 就是5的5次方 还多了一个 // 整数除法 逻辑运算符: and,or,not 与,或,非 赋值运算符: 没有+

    2024年02月02日
    浏览(42)
  • Python知识点大全(非常详细)

    1、Python的两种编程⽅式:交互式(随输随运⾏)和⽂件式(主要⽅式;批量运⾏出结果) 2、⼀切皆对象,每个对象由标识(id())、类型(type())和值(print())标识。 3、Python采⽤ 基于值的内存管理 ,不同变量赋值为同⼀个值,ID⼀样,但是只适⽤范围在-5⾄256的整数和短字

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包