![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 64
蜗牛style
梦想是写作,我想我已经实现一半了,毕竟都是坐在电脑前敲键盘(ಡωಡ)
展开
-
Sqlalchemy 常用方法
求分位数 Clickhouse : quantile(level)(expr)3. 子查询 subquery, 使用子查询时,字段用.c。不等于null: isnot(None)4. 开窗函数:over。2. 常量使用text。原创 2023-08-01 14:47:48 · 363 阅读 · 0 评论 -
pycharm如何配置anaconda的环境
pycharm选择/配置conda环境原创 2022-11-04 23:55:52 · 9558 阅读 · 2 评论 -
fastapi 在中间件中获取requestBody
fastapi 在中间件中获取requestBody原创 2022-10-20 18:04:40 · 2341 阅读 · 0 评论 -
【无标题】format有括号 {},保留原括号
formate中候大括号是特殊转义字符 , 字符串中有{} 的情况下,如果使用format, 会报错:可以将{替换成{{, }替换成}}原创 2022-07-11 14:19:23 · 350 阅读 · 0 评论 -
python之logging配置日志的三种方式
以下3种方式来配置logging:需要说明的是,也属于第一种方式,它只是对loggers, handlers和formatters的配置函数进行了封装。另外,第二种配置方式相对于第一种配置方式的优点在于,它将配置信息和代码进行了分离,这一方面降低了日志的维护成本,同时还使得非开发人员也能够去很容易地修改日志配置。代码如下:运行输出:二、使用配置文件和fileConfig()函数实现日志配置现在我们通过配置文件的方式来实现与上面同样的功能:配置文件内容如下:运行输出:1.原创 2022-06-06 12:15:05 · 4572 阅读 · 1 评论 -
外观模式(门面模式)
模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。模式结构外观模式包含如下角色:Facade: 外观角色 SubSystem:子系统角色例子:(火警报警器)假设有一组火警报警系统,由三个子元件构成:一个警报器,一个喷水器,一个自动拨打电话的装置。其抽象如下:class Ala原创 2021-04-08 17:29:30 · 192 阅读 · 0 评论 -
装饰器模式
模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(Decorator)装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什.原创 2021-04-08 17:02:41 · 121 阅读 · 0 评论 -
桥接模式
模式动机设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。 第二种设计方案是根据实际需要对形状和颜色进行组合对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。模式定义桥接原创 2021-04-08 16:43:28 · 119 阅读 · 0 评论 -
适配器模式
模式动机在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标类中定义的方法名不一致等原因所导致的。 在这种情况下,现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能,适配器模式可以完成这样的转化。 在适配器模式中可以定义一个包装类,包装不兼容接原创 2021-04-08 16:06:10 · 122 阅读 · 0 评论 -
单例模式
模式动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个访问该实例的方法。这就是单例模式的模式动机。定义单例模原创 2021-04-08 15:54:52 · 101 阅读 · 0 评论 -
建造者模式(生成器模式)
动机:无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。在软件开发中,也存在大量类似汽车一样的复杂对象,它们拥有一系列成员属性,这些成员属...原创 2021-04-08 15:20:48 · 124 阅读 · 0 评论 -
抽象工厂模式
模式动机: 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。 为了更清晰地理解工厂方法模式,需要先引入两个概念: 产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具.原创 2021-04-08 14:37:04 · 164 阅读 · 0 评论 -
工厂方法模式
工厂方法模式是简单工厂模式的进一步抽象和推广。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责产品类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。工厂方法模式包含如下角色:Product:抽象产品 ConcreteProduct:具体产品 Factory:抽象工厂 ConcreteFactory:具体工厂示例:想必大家一定见过类似于麦当劳自助点餐台一类的点餐系原创 2021-04-08 14:25:14 · 110 阅读 · 0 评论 -
简单工厂模式
模式结构: Factory:工厂角色 工厂角色负责实现创建所有实例的内部逻辑 Product:抽象产品角色 抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口 ConcreteProduct:具体产品角色 具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例。 优点:工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;简单工厂模式通过这种做原创 2021-04-08 14:12:28 · 160 阅读 · 0 评论 -
python调整视频播放速度
播放视频时许多播放器都可以设置播放倍速,那么用python可以调整视频播放的速度吗?答案当然是可以喽假如我们想将视频以0.5倍的速度播放怎么做呢代码如下:video= r'video.mp4'resultFile= r'result.mp4'video = VideoFileClip(video)duration = video.durationvideo = video.fl_time(lambda t: 0.5*t, appl原创 2020-07-15 11:57:25 · 5921 阅读 · 0 评论 -
python 将视频旋转
利用moviepy可以将视频位置旋转。用到的方法是rotate如下原视频片段from moviepy.editor import *aviFileName = r'video.mp4'resultFileName = r'rotate.mp4'video = VideoFileClip(aviFileName)size = video.w, video.hsub_videos = [video.subclip(0,1).rotate(90).resize(size), #逆时针原创 2020-07-15 11:47:18 · 4490 阅读 · 2 评论 -
利用python将视频转换成动图
之前的博客里提到,csdn只支持url视频,所以想把一些自己的短视频直接上传时,我们可以把视频转换成动图上传。这里附上方法:from moviepy.editor import *video = "需要转换成动图的视频.mp4"clip=VideoFileClip(video)clip = clip.set_duration(clip.duration)clip.write_gif("output.gif",fps=8) 假如视频很大,我们可以调整分辨率大小以及改变帧数来达到我原创 2020-07-15 11:25:56 · 785 阅读 · 0 评论 -
使用moviepy为视频添加字幕
目录一、添加字幕二、字幕逐词出现效果一、添加字幕首先在网上找一段无版权视频截取前4秒,开始实验。为了展示效果,上视频。。。发现csdn只支持url视频。emm.......没关系,使用moviepy将视频转成gif截取后原视频:加字幕后:下面开始正题。实现:为一段十秒钟的视频添加字幕。sentences = [('moviepy,如何给视频添加字幕', 0, 3), ('设定字幕开始时间', 4, 2), .原创 2020-06-29 16:13:40 · 4686 阅读 · 1 评论 -
moviepy 视频剪辑,拼接,合成
在视频处理中常会遇见需要将两段视频剪切拼接的问题。怎样用moviepy解决呢?一、剪切视频1.subclipfrom moviepy.editor import *aviFileName1 = r'待处理视频1.mp4'aviFileName2 = r'待处理视频2.mp4'aviFileNameResult = r'D:\录屏视频\合成、带字幕.mp4'video1 = VideoFileClip(aviFileName1).subclip(t_start=3, .原创 2020-06-29 11:58:06 · 2743 阅读 · 0 评论 -
使用python的moviepy做视频版权、logo添加
logo一般分成两种,一种自定义文字,一种图片logo一、自定义文字logo实现目标:自定义文字logo,在整个视频过程中,让logo在视频的任意位置随机出现10次。以增加视频被去除logo的难度。times_list:计算出现10次,每次应该在某一位置停留的时长。 def add_logo( video): times = video.duration n = 10 #在不同位置出现10次 times_list = [i*(t.原创 2020-06-29 11:25:29 · 2364 阅读 · 0 评论 -
moviepy对视频中音频的提取、删除、添加
提取视频中的音频from moviepy.editor import *video_path = 'my_video.avi' #视频地址audio_path = 'my_audio.mp3' #提取音频保存位置video = VideoFileClip(video_path)video.audio.write_audiofile(audio_path)将一段视频中的音频删除,保存为无声视频old_video = '有声音.avi'new_video = '无声音.av.原创 2020-06-16 11:36:00 · 6471 阅读 · 0 评论 -
liunx 环境下 python模块numpy,scipy,matplotlib 安装
NumPy是一个定义了数值数组和矩阵类型和它们的基本运算的语言扩展。SciPy是另一种使用NumPy来做高等数学、信号处理、优化、统计和许多其它科学任务的语言扩展。Matplotlib是一个帮助绘图的语言扩展。1.首先安装Numpy,它是matplotlib的先行包,里面的很多图形处理函数都要依赖numpy里的数学计算。 1)在Debian或Ubunt原创 2017-08-10 10:33:49 · 655 阅读 · 0 评论 -
liunx 环境下 python模块pygame 安装
一、使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip。在Python3中,pip有时被称为pip3. 1、在Linux和OS X系统中检查是否安装了pip 打开一个终端窗口,并执行如下命令: Python2.7中: $ pip --version pip 8原创 2017-08-01 14:23:59 · 663 阅读 · 1 评论