自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 收藏
  • 关注

原创 Python:报错SyntaxError: Non-ASCII character ‘\xe6‘ in file.

1.SyntaxError: Non-ASCII character ‘\xe2’ in file意思是说,在文件中存在非ASCII字符;2.ASCII是8位即一个字符,一共256个字符,随着计算机的发展,现在已经用到2个或者4个字符;3.最重要的原因就是文件中有中文解决办法建议在文件头追加:# -*- coding: cp936 -*-或者# -*- coding: utf-8 ...

2020-07-19 15:07:08 1194

原创 Python:Numpy数组的保存与读取

数组以二进制格式保存np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为npy的文件中,以数组a为例np.save(“filename.npy”,a)b = np.load(“filename.npy”)12利用这种方法,保存文件的后缀名字一定会被置为.npy存取文本文件使用 np.savetxt 和 np.l...

2020-07-15 12:13:26 17690

原创 Linux:编译文件时make install报错

正常编译文件四步骤:$ tar -zxvf filename //解压$ ./configure //去解压目录下执行$ make //编译所有$ make install //将编译好的文件进行安装在执行make install时遇到了下面的错误:刚开始还以为是安装包有问题。又下载几个安装包,结果执行时又遇到了同样错误,在一番折腾下突然发现make install是用来安...

2020-07-13 20:04:51 7112

原创 Linux:yum命令报错There are no enabled repos. Run “yum repolist all“ to see the repos you have.

这是因为不支持yum下载按装机制正确的命令是:sudo apt-get install opensslsudo apt-get install libssl-dev

2020-07-10 18:52:03 3302 2

原创 Python:一个简单的tornado程序:监听服务器端口,访问时给浏览器返回一个字符串

一个简单的tornado程序tornado是python里的一个模块,它是一种web服务器软件的开源版本它作为web服务器,具有较出色的抗负载能力,它适用于用户量大,高并发,或者大量的HTTP持久连接的情况。我们来看一段简单的程序代码import tornado.webimport tornado.ioloopclass IndexHander(tornado.web.Request...

2020-04-10 18:09:22 1198

原创 Python:numpy打印数组中间省略号

numpy打印数组中间省略号当想要输出一个完整的array时,默认是输不出来的,如那么要想要完整地打印该数组的话该怎么办呢?很简单,加一句代码:import numpy as npnp.set_printoptions(threshold=np.inf)这样就好啦~,可以去试一试...

2020-03-31 19:27:24 1195 1

原创 ffmpeg:截图、截取动图、加水印、录屏、直播

brew更新ffmpegbrew update && brew upgrade ffmpeg截取视频中的某一帧ffmpeg -i input.mp4 -y -f image2 -ss 8 img.jpg(截取8秒的图片)ffmpeg -i test1.mp4 -y -f image2 -t 0.001 -s 352x240 img.jpgffmpeg -i test1.m...

2020-03-23 08:46:57 2202

原创 ffmpeg:截取音视频、连接音视频

使用ffmpeg截取音视频、连接音视频截取音视频(-ss开始时间-t持续时间-to结束时间,00:00:00表示时分秒)ffmpeg -i input.mp3 -ss 00:00:05 -to 00:00:10 -acodec copy output.mp3 ffmpeg -i input.mp3 -ss 00:00:05 -t 5 -acodec copy output.mp3ffmpe...

2020-03-17 09:18:01 1031

原创 ffmpeg:提取音视频、合并音视频

使用ffmpeg提取音视频,截取音视频博主的上一篇文章谈了一些ffmepg的基本音视频参数,这次这篇就基于上一篇扩展一些操作噢~提取视频文件(提取出的视频无声音)ffmpeg -i input.mp4 -vcodec copy -an output.mp4参数解析:【-vcodec copy】复制原视频编码格式【-an】将音频流剔除,可以理解为audio none但是如果包含多个音...

2020-03-10 13:57:25 4235

原创 ffmpeg:码率控制模式、编码方式

码率控制模式码率控制:码率控制是在决定为每一个帧画面分配多少比特数,这是在权衡文件体积和画面质量在ffmpeg里支持一下三种码率控制模式:-qp(constant quantizer恒定量化器模式)所谓的量化器就是利用特殊算法将画质转化为数字,这样的话每一帧的画质都可以通过量化参数来判定。在qp模式下,画质被分为0…20…40…51个级别,0就是无损的画质。用qp压制视频,每一帧的画面都能...

2020-03-08 12:12:05 16296

原创 ffmepg:使用ffmpeg转换音视频格式

使用ffmpeg对音视频进行相关操作转换音频格式ffmpeg -i input.mp3 output.wav //把mp3文件转换为wav文件ffmpeg -i input.wav -acodec libmp3lame -aq 4 -ar 44100 -ab 320k -ac 2 output.mp3 //把wav文件转换为mp3文件ffmpeg -i input.wav -c:a cop...

2020-03-04 13:16:03 7312 3

原创 Debian下root用户bash高亮显示

只需要将ls等命令的–color选项打开即可, 而这些都已存在,只需将~/.bashrc中的注释恢复即可,如下vim ~/.bashrc修改成如下即可

2020-01-14 19:02:25 726

原创 C++:define和const的区别

define和const的区别define定义的常量是没有类型的,如#define MAX 255,编译器只是把定义的变量名和变量值对应起来;const定义的常量是有类型的,存放在静态区中,如const float MAX = 255;。也正是因为define无类型,所以没有类型安全的检查就有可能会有意想不到的错误,而const会在编译的时候进行类型检查define定义的变量是在预编译的时候...

2019-12-18 20:08:46 332

原创 ffmpeg:文件格式、封装格式、编码

文件格式我们经常看见的视频都是以.mp4 .flv等作为后缀名,这是视频的文件格式。文件格式的作用是方便系统识别,并关联这些文件,好让相应的文件由相应的程序打开。这些后缀名可以随便改,不会对文件有任何影响,如果打开出错的话再改回来就行。封装格式这些视频的后缀其实也叫视频的封装格式,简称视频格式。封装: 后缀名(封装格式/文件格式)。所谓封装就是把编码器生成的多媒体文件,如视频,音频,字...

2019-12-13 14:32:07 2896

原创 ffmpeg:入门简单命令的使用

使用ffmpeg对音频进行相关操作

2019-12-07 15:48:23 1102 1

原创 ffmpeg:简介和安装 / 更新

ffmpeg的简介和安装简介ffmpeg全称Fast Forward Mpeg,是一套用来处理视频和音频的开源工具库。它提供了录制,转换,流媒体,以及后期处理的完整解决方案,并且具有非常高的质量和可移植性。总之就是非常强大!!!o(*≧▽≦)ツ安装1.首先登陆官网,下载你需要的安装包http://www.ffmpeg.org/2.解压后安装到你想安装的位置3.添加环境变量path...

2019-12-01 16:43:18 1388

原创 Python:Python序列的切片操作

Python序列的切片操作序列(consequence)是 python 中一种数据结构,这种数据结构根据索引来获取序列中的对象。一般说来,具有序列结构的数据类型都可以使用:index, len, max, min, in, +, *, 切片。如:a="abcdefg"print(len(a))#7print(max(a))#gprint(min(a))#aprint(a+a)#ab...

2019-11-25 10:36:34 881

原创 Linux:进程控制(创建、终止、等待、替换)

进程控制(创建、终止、等待、替换)进程创建(fork)fork之后系统里多了一个进程,也就意味着多了一套PCB。fork(用于创建子进程)#include <unistd.h>pid_t fork(void);fork函数返回值:子进程返回0,父进程返回子进程pid,出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块和内核数...

2019-11-20 18:00:38 228

原创 Linux:读者写者模型(读写锁)

读者写者模型(读写锁)在编写多线程时,有可能会出现有些公共区域的数据修改的机会比较少,但是读的机会反而很多,也就是说写者少,读者多。那么在读的过程中往往伴随着查找的操作,耗时较长,如果给这种代码加锁的话,会导致效率的降低,因此读写锁就是针对多读少写的情况。当前锁状态读锁请求写锁请求无锁可以可以读锁可以阻塞写锁阻塞阻塞这里默认是读锁优先的,因为...

2019-11-16 10:51:22 563

原创 Linux:POSIX信号量

POSIX信号量POSIX信号量和SystemV信号量作⽤相同,都是⽤于同步操作,达到⽆冲突的访问共享资源目的。 但POSIX可以⽤于线程间同步。信号量本质上是一个计数器,这个计数器是用来描述临界资源当中资源数目的。信号量本身也会被多个线程申请,所以信号量本身也是临界资源,那么它要保护临界资源就要保证自己本身是安全的,所以信号量是原子性的。因此信号量不能用整形计数器来代替,因为整形的++和- ...

2019-11-10 11:04:40 258

原创 Linux:生产者消费者模型下篇(基于环形队列)

基于环形队列的生产者消费者模型上篇讲解了生产者消费者模型以及基于BlockingQueue实现该模型,下篇这里就实现一个基于环形队列的生产者消费者模型吧!这个环形队列用数组来实现。1.如何把数组设置一个环形的队列呢?利用模运算来实现顺序结构的环形操作。0 ~ 9模10依然是0 ~ 9,10模10就变成0了,也就回到了数组的头部,从而实现一个环形队列。2.那么如何判断该环形队列的空和满呢?...

2019-11-05 14:46:14 298

原创 Linux:生产者消费者模型上篇(基于BlockingQueue)

生产者消费者模型为何要使用生产者消费者模型生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。321原则...

2019-09-11 15:10:33 248

原创 测试:Android使用Fiddler模拟弱网络环境测试

Android使用Fiddler模拟弱网络环境测试现在基本上软件都会去访问互联网,但有的时候测试人员需要模拟弱网环境进行测试,但是测试人员又不可能跑到离路由器很远的地方哈哈哈,那么我们就会去采用一些工具!比如fiddler!看下方!第一步:下载抓包软件fiddlerfiddler下载网址:https://www.telerik.com/fiddler第二步:设置fiddler头部的To...

2019-08-12 17:33:29 868

原创 自动化测试:Monkey环境的搭建(windows)

前言Monkey是什么?Monkey是发送伪随机用户事件的工具流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey在哪里?每一台android手机里面都有Monkey工具,但是我们是看不到的,因为它不是一个可视化的工具。它不像wechat是可视化的,能打开,能执行用户操作,有图形界面,Monkey没有。如何与Monkey进行通讯?我们需要借助AD...

2019-07-26 17:40:36 522

原创 Linux(面试题):进程和线程的区别

进程和线程的区别博主最近面试的时候被好多公司的面试官都问到了这个问题~今天整理一下|ू・ω・` )答这个问题我觉得从下面几个点答就好啦~进程和线程的概念进程: 进程是操作系统资源分配的基本实体线程: 线程是CPU调度和分配的基本单位在Linux系统下是没有线程的概念的,它是用进程模拟的线程,因此把线程叫做轻量级进程。那为什么还要引入线程呢?1.更加易于调度2.提高并发性,因为可以...

2019-07-04 19:24:02 7036 6

原创 Linux:线程同步

线程同步同步: 在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题,叫做同步。竞态条件: 因为时序问题,而导致程序异常,我们称之为竞态条件。没有同步导致的饥饿问题:假如有一个线程,它非常强势,它一直都在申请锁,然后申请完了释放锁,释放完了又不给别的线程留机会,自己又去申请锁,那么此时如果有线程想要访问临界资源就必须等它彻底走了,那么有越来越多的线程想要访...

2019-06-14 13:45:21 3556

原创 数据结构:大数据处理问题

1.给定100亿个整数,设计算法找到只出现一次的整数?①方法一100亿个整数就是400亿个字节,42亿九千万是4G,那么1G就是10亿字节,所以要存下100亿个整数需要40G的内存空间。因此我们采用位图100亿个整数大概就是1G,但是使用位图,需要用两个位标识一个数字(两个位可以标识四种状态),没有出现过为00,出现一次为01,出现两次及以上为10,11可以丢弃。所以2G空间就够了。那么现在...

2019-06-12 12:59:21 952

原创 数据结构:布隆过滤器

布隆过滤器假如现在有40亿个ip地址(string类型),然后给你一个ip地址,让你查找这个ip地址在不在这40亿个ip地址里?我们应该怎么做呢?如果用哈希表来处理的话,这里有40亿的数据,数据量太大,因此太占用空间如果用位图来处理的话,这里因为是字符串,有可能不同的字符串映射的是同一个位,会有哈希冲突的问题,导致误判因此我们采用的是哈希+位图的方法,也就是布隆过滤器布隆过滤器是由布...

2019-06-10 17:46:49 947

原创 C++(面试题):给40亿个不重复的无符号整数,没排过序,如何快速判断一个数是否在这40亿个数中

给40亿个不重复的无符号整数,没排过序,给你一个无符号整数,如何快速判断这个数是否在这40亿个数中?首先看到这个题第一个想到的就是遍历一遍,看这个数在不在。但是这样的时间复杂度太高了O(N),数据量太大,因此该方法不行。其次我们想到排序,利用二分查找,时间复杂度是O(logN),但是排序本身就有很大的消耗,并且40亿个数据内存一次也存不下。那么就采用位图!位图就是用来判断一个数据在不在的最好...

2019-06-08 15:22:22 2316 1

原创 数据结构:位图

位图位图,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。位图其实是用数组实现的,数组的每一个元素的每一个二进制位都可以表示一个数据在或者不在,0表示数据存在,1表示数据不存在。因为比特位只有两种状态,要不是0,要不就是1,所以位图其实就是一种直接定址法的哈希,只不过位图只能表示这个值在或者不在。 如下图所示:当我们探测到25比特...

2019-06-06 16:59:02 17882 3

原创 MySQL:外键及外键的使用

外键及外键的使用如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。表间关系有一对一,一对多和多对多。首先我们举个简单的栗子学生表,老师表,班级表一个学生属于一个班级,一个班里有多个学生。一个学生可以被多个老师授课,一个...

2019-06-04 12:53:18 459

原创 MySQL:建库建表等简单操作

库的相关操作– 查看已有库SHOW DATABASES;SHOW DATABASES\G– 新建库的操作CREATE DATABASE `ET`;– 查看建库信息SHOW CREATE DATABASE `ET`;– 把一个库设置为默认库USE ET;– 删除库DROP DATABASE ET;表相关操作– 建表CREATE TABLE students (...

2019-06-02 13:21:48 1095

原创 MySQL:MySQL下的常用类型,主键和唯一键

一、MySQL下的类型整型TINYINT , SMALLINT , INT , BIGINT小数浮点数(不是高精度) FLOAT/DOUBLE保证精度 DECIMAL/NUMEROUS几个坑bit 显式的时候是 ASCII 码CHAR 最多 255 个字符VARCHAR 最多是 65535 个字节,具体多少字符65535/3(每个utf8 占 3 字节)字符类型...

2019-05-31 10:46:31 8361

原创 C++(面试题):判断一个链表是否带环,求环的长度,找到环入口节点

博主面试的过程中遇到了这么一个面试题,判断一个链表是否带环,并且如果有环的话,要找到环的入口节点,并且求出环的长度~那么我们大家一起来分析一哈(っ•̀ω•́)っ✎⁾⁾假设链表的节点的结构是这样的struct ListNode{ int val; ListNode* next;};判断一个链表是否带环方法一:快慢指针定义一个快指针和慢指针都指向链表的head,快指针一次走两步,...

2019-05-29 18:34:13 2318 3

原创 测试:如何测试微信朋友圈的点赞功能

今天我们来写一个微信朋友圈点赞功能的测试用例(っ•̀ω•́)っ✎⁾⁾功能测试是否可以点赞取消点赞多次点赞会出现什么情况多人点赞时的顺序是否按照时间顺序进行排列点赞是否显示头像和名称点赞之后能否进行评论点赞之后退出该页面,再次进入朋友圈点赞消息是否还存在多用户点赞,再次打开朋友圈是是否可以按照顺序看到是谁谁谁赞了我接口测试点赞之后相同好友是否收到提示信息相同好友处的提示...

2019-05-26 15:57:03 17674 6

原创 Linux:get和post的区别

HTTP定义了与服务器不同的交互方法,最常用的就是get和post。那么我们谈一谈他俩的区别吧~URL可见性get:参数URL可见post:参数URL不可见数据传输get:通过拼接URL进行传递参数post:通过正文进行传递参数传输大小get:一般传输数据不超过2k-4kpost:请求传输数据的大小根据php.ini 配置文件设定,也可以无限大GET产生一个TCP数据包,浏...

2019-05-24 10:33:20 559

原创 MySQL:CentOS 7通过yum安装MariaDB

如何在CentOS 7下通过yum安装MariaDB呢?这里附上大佬的安装步骤:https://zhuanlan.zhihu.com/p/49046496博主就是按照这个步骤来的,炒鸡详细~相信你也能看明白 |ू・ω・` )注意几个小点:前面带#的操作都是在shell命令行执行的前面带MariaDB [(none)]>的操作都是在MySQL里执行的如何从shell进入MySQ...

2019-05-22 13:05:19 187

原创 数据结构:红黑树的旋转原理和模拟实现

红黑树的旋转原理和模拟实现我们了解到AVL树虽然效率很高,但是它是通过多次的旋转才到达一个绝对的平衡,旋转的消耗其实也很大。因此开始引入近似平衡的一棵树----红黑树(RBTree)。红黑树每一个节点不是红色的就是黑色的,它保证了最长路径不超过最短路径的二倍。其实一般来说使用红黑树会比AVL树更多,因为虽然AVL树是更加平衡的,但是它的平衡是通过更多次的旋转得到的,旋转的时候消耗还是很大的。而...

2019-05-21 09:54:58 942

原创 数据结构:AVL树旋转原理和简易实现

AVL树旋转原理和简易实现二叉搜索树虽然可以提高搜索效率,但是如果插入的数据有序时很有可能变成单支,如果变成单支树的时候,那么查找时效率也不高了。因此引入AVL树。AVL树是当向这棵树插入节点的时候,要保证每个节点的左右子树的高度差都不超过1,如果超过1时就要对这棵树的分支进行旋转。AVL树的特性:它的左右子树都是AVL树左右子树高度之差(简称平衡因子)的绝对值不超过1(-1/0/1)...

2019-05-19 14:05:01 659

原创 测试:如何测试一个用户登录界面

要编写一个较好的测试用例就应该从用户需求入手。比如如何测试一个用户登录界面,那么我们就要考虑这个登录界面是弹出式的还是内嵌网页式的,同时对用户名和密码的长度,密码的强度(必须多少位,特殊字符,数字,大小写等等),另外对用户界面的美观是否有相关要求?所以我们试着编写一下该问题的测试用例(っ•̀ω•́)っ✎⁾⁾ :功能测试什么都不输入,直接点击提交按钮,看提示信息输入正确的用户名和密码,点...

2019-05-17 11:46:09 23820 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除