不常见的python类型校验
以前写过关于python类型校验的相关总结,但是不怎么全面,有些不常见的特殊情况并未被记录。 任意类型any若声明某函数时指定函数传入参数的数据类型为any,则调用该函数时该参数的参数类型可以为任意类型。 1234def demo(name: any, age: 'int > 0' = 20) -> str: # ->str 表示该函数的返回值是str类型的 print(name, type(name)) print(age, type(age)) return "hello world" 类型别名1234567# 给List[float]类型取个别名为VectorVector = List[float]def scale(scalar: float, vector: Vector) -> Vector: return [scalar * num for num in vector]new_vector = scale(2.0, [1.0, -4.2, 5.4]) 内容与长度限制在需要限...
go语言操作txt文件
打开txt二进制打开: 123456789101112131415161718192021222324package mainimport ( "fmt" "os")func main() { i, v := os.Open("test.txt") //打开文件 if v != nil { //如果报错了进入if fmt.Println("打开文件失败", v) return } defer i.Close() //最后关闭文件 var k = make([]byte, 128) //创建一个容量为128字节的切片 for { h, l := i.Read(k) //开始读取,把读取的数据放入切片k中,h是读取了多少字节,l是报错信息 fmt.Println(strin...
Nginx基础概念
在操作web的时候常常会遇到一个关键词叫做Nginx代理,或者说在提到负载均衡的时候也会提到这个关键词,但是很久都没有去关注这个是啥 什么是NginxNginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。Nginx本身是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡。其特点是占有内存少,并发能力强。nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。 Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行...
neo4j基础
曾经使用neo4j实现了一个娱乐圈明星关系网络,那次在安装的时候耗费了我一上午的时间,距离上次使用之后我已经一年没使用过了,忘得差不多了,现在有需要要重新使用neo4j。再次使用docker安装使用想要记录一下。 简介neo4j简介neo4j是一种图数据库,与常见的关系型数据库不同,图数据库不以表结构存储数据。图数据库本身属于NoSql数据库中的一种,是基于数学中图论实现的一种数据库。图数据库将数据和数据之间的关系存在节点和边中,在图数据库中这被称作节点和关系。没有了库表字段的概念,相当于是把数据存在了一张大宽表中。 Neo4j是图数据库中一个主要代表,其开源,且用Java实现。经过几年的发展,已经可以用于生产环境。其有两种运行方式,一种是服务的方式,对外提供REST接口;另外一种是嵌入式模式,数据以文件的形式存放在本地,可以直接对本地文件进行操作。 举一个简单但不是很恰当的案例,图数据库将数据按图数据结构进行存储数据,按数据节点与关系进行存储,保存节点和关系的数据以及其属性信息。 docker简介docker的英文意思是 码头工人,意思就是搬运东西的意思,其实这和docker...
何为ssh?
在初学Linux的时候或者第一次使用git的时候一定会出现一种协议叫做ssh,并且不可避免的需要配置ssh协议,但是使用了很久都没有去关注ssh到底是什么? ssh协议(Secure Shell)ssh中文名为安全外壳,是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案。 SSH服务由服务端软件OpenSSH和连接客户端组成(SSH、SecureCRT,xshell等),默认端口是22。SSH是一个守护进程,负责实时监听客户端请求,并进行处理。 ssh是一种应用层协议,它的传输层协议是tcp。 ssh连接流程ssh协议建立连接的过程为: tcp三次握手 ssh协议版本协商 服务器端把公钥发给客户端 加密算法协商 客户端使用公钥对服务器端的密码加密并发送给服务器端 服务器端收到后用自己的私钥解密后得到用户名密码和本地密码对比,验证成功允许登录,否则需要客户端再次输入密码验证 这里出现了...
Linux当中解压命令基础
在常见的Linux压缩当中,有两种格式是十分常见的,分别是zip与tar,这边文章对两种格式需要用到的命令做了基础性的总结。 zip和unzipzip和unzip命令可以分别对文件进行压缩和解压缩 zipzip可以对文件快速创建压缩包 123zip archive inpath inpath ...# archive指定生成压缩归档文件的路径# inpath inpath ...要添加到压缩包中的文件路径 如下: 1zip backup.zip test/*.txt 在windows当中压缩文件可以右键进行压缩,并且有多种选项,相对的在Linux也可以做这些选项,不过这些都涵盖在命令当中。 zip分卷压缩123zip -s 64k new.zip *.txt# -s 64k 指定分卷大小为64K,zip允许的最小分卷大小为64k。zip test.zip /bin/zsh -s 100k 对压缩包重新分卷 如果你有一个较大的压缩包,要进行分卷也可以采用类似的方法。 1zip big.ziph --out new.zip -s 1m zip的更多参数1zip op...
(fastapi六)fastapi当中的多进程方案
在使用python创建web服务过程当中,往往有时候需要使用到多进程,这个时候就会出现以下一些问题: 多进程怎么管理? python创建进程拷贝资源导致占用太多怎么办? 进程之间数据怎么通信? 出现某些变量无法被序列化的时候进程通信怎么办? 共享内存的时候数据传输问题? 以上问题是我个人在使用fastapi的时候遇到的,问题在于我想要使用fastapi结合某些机器学习的模型为别人提供服务,由于机器学习的模型太过于庞大并且每一次计算都相当的耗费计算资源,因此想要使用多进程的方式进行解决。以下是解决问题的过程! 直接使用fastapi的多进程没错fastapi自己也有多进程,只需要在启动的时候添加一个wokers参数就可以了,如下: 1uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True,works=2)# 启动命令 用起来确实可以,但是一启动就炸了,这个多进程本质上多个fastapi一起启动的用法,在我启动之后我就发现了事情的不对...
python保存变量
在python程序当中,如果需要涉及到读取体积较大文件或者涉及较为复杂的变量处理的时候,在变量的处理或者序列化的阶段可能非常耗费时间,基于此我们可以提前将变量保存起来形成文件的格式。与原来的读取文本文件的方式不同,变量保存的文件读取之后直接就是包含数据结构与对象类型的变量,并且读取速度也会相应的快很多。 python为不同的情况提供了多种变量的保存方式,有些库自己也提供某些变量的保存方式。以下展示几种python保存变量的方式。 方法一: 12345678910111213141516171819import pickle# 存储变量的文件的名字filename = 'shoplist.data'# 初始化变量shoplist = ['apple', 'mango', 'carrot']# 以二进制写模式打开目标文件f = open(filename, 'wb')# 将变量存储到目标文件中区pickle.dump(shoplist, f)# 关闭文件f.close()# 删除变量d...
霍夫线变换
霍夫线变化适用于在检测某一张图像中线段的位置,在实际使用过程当中可用于对图像线段特征进行查找过滤。个人能够想到的实际用途可能是用于作业检测,检测在横线上填写的答案。霍夫变换是图像分析,机器视觉,数字图像处理中常用的处理方法。这种方法能从图像中分离出一些特定的形状的图形。经典的霍夫变换研究的是如何在图像中分离出直线,随着研究的深入,霍夫变换可以分离出图像中的圆,椭圆,甚至是任意形状。 基础知识首先需要明白一个基础知识,就是在笛卡尔坐标系当中,一条线段的表示方法是:y = kx + q,其中q是常量。但是在霍夫空间中,一条线段是以一个点来表示的。反之,霍夫空间中的线代表笛卡尔坐标系当中的点。即: 霍夫空间点 == 笛卡尔坐标系线 笛卡尔坐标系点 == 霍夫空间线 这很重要!!!当我们需要找到图像中的一条线段的时候,需要确定被处理后的图像的多个点是否交于同一线。如果多个点在笛卡尔坐标系当中是同一线,反之在霍夫空间当中多条线会交于同一点上。由此实现点与线的对应关系。 在霍夫空间当中,只需要统计相交于同一点的线最多的点,就能找到图像中越接近线的部...
md5加密与AES加密
md5加密简介消息摘要算法第五版(英语:Message-Digest Algorithm 5,缩写为MD5),是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一(又译哈希算法、摘要算法等),主流编程语言普遍已有MD5的实现。将数据 (如一段文字)运算变为另一固定长度值,是散列算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。目前,MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通 数据的错误检查领域。例如在一些BitTorrent下载中,软件将通过计算MD5检验下载到的文件片段的完整性。MD5已经广泛使用在为文件传输提供一定的可靠性方面。例如,服务器预先提供一个MD5校验和,用户下载完文件以后, 用MD5算法计算下载文件的MD5校验和,然后通过检查这两个校验和是否一致,就能判断下载的文件是否出错。MD5是输入不定长度信息,输出固定长度128-bits的算法。经过程序流程,生成四个32位数据,最后联合起来成为一个 128-bits散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算...






fastapi当中的多进程方案/封面.png)







