知识点总结
huchaoshan
这个作者很懒,什么都没留下…
展开
-
python 使用opencv找轮廓
def find_counts(subtracted_img,img, cross_s_text, border_coord, ratio): # height, width = img.shape[:2] segmented_img = img.copy() contour_list = [] #air_duct_img取灰度图。取二值 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) _, thresh1 = cv2原创 2022-03-30 10:10:34 · 3951 阅读 · 0 评论 -
数据库总结
1 mysql存储引擎及区别?存储引擎是针对与表的MyISAM①不支持事务,但是整个操作是原子性的(事务具备四种特性:原子性、一致性、隔离性、持久性)②不支持外键,支持表锁,每次所住的是整张表 MyISAM的表锁有读锁和写锁(两个锁都是表级别): 表共享读锁和表独占写锁。在对MyISAM表进行读操作时,不会阻塞其他用户对同一张表的读请求,但是会阻塞其他用户对表的写请求;对其进行写操作时会阻塞对同一表读操作和写操作 MyISAM存储引擎的读锁和写锁是互斥的,读写操作是串行的。那么,原创 2022-03-28 17:48:59 · 49 阅读 · 0 评论 -
Django知识总结
1 django中间件使用?中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。中间件可以定义五个方法,分别是:(主要的是pr原创 2022-03-27 00:43:51 · 35 阅读 · 0 评论 -
python面试题总结
1 python 内存管理机制: 引用计数: 当一个对象的引用被创建或复制时,对象的引用计数+1 当对象的引用被销毁时,对象的引用计数-1 当对象的引用计数减为0时,就意味着对象没有被使用,可以将其所占内 存释放了 引用计数法有很明显的优点: 1高效` 2运行期没有停顿 可以类比一下Ruby的垃圾回收机制,也......原创 2022-03-26 22:04:15 · 39 阅读 · 0 评论 -
python virtualenv创建虚拟环境
1 安装python 解释器(官网)2 pip install virtualenv 命令安装 virtualenv 库3 安装好 virtualenv 库后,打开 python 安装目录,在安装目录下新建一个文件夹,将其命名为 envs。如下图所示:4 进入到 envs 文件夹,点击地址栏,在地址栏中输入 cmd,回车进入命令行窗口5 在命令行输入 virtualenv new_env(new_env 为新建的虚拟环境的名称,根据情况自命名),回车。大约几秒钟时间,就会生成一个新的虚拟原创 2022-02-09 10:32:00 · 4307 阅读 · 2 评论 -
python监控函数运行占用最大内存和CPU最大使用率
from functools import wrapsimport threadingimport psutilfrom time import time, sleepclass MetricsThread(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.max_memory = 0 self.max_cpu = 0 sel原创 2022-01-27 15:15:25 · 1085 阅读 · 0 评论 -
python 类装饰器和函数装饰器监控函数的耗时情况,每行代码耗时
from functools import wrapsfrom line_profiler import LineProfiler as lpffrom time import time, sleepimport datetimeclass Decorator: @classmethod def timer(cls, tag=""): """ 代码计时器 :param tag: 标签 :return: 注解代码原创 2021-11-19 11:15:19 · 1760 阅读 · 0 评论 -
python functool.wraps 作用
from functools import wrapsdef decorator(func): # @wraps(func) def wrapper(*args, **kwargs): result = func(*args, **kwargs) return result return wrapper# @decoratordef fun_test(): print(8988)if __name__ == '__main__'原创 2021-11-19 11:06:37 · 345 阅读 · 0 评论 -
python 连接redis 实现消息发布和订阅
redis连接:消息发布和订阅:消息处理:string类型数据的插入和读取:原创 2021-11-17 17:27:26 · 888 阅读 · 0 评论 -
python多继承方式和顺序
python 中继承方式有两种:深度优先、广度优先。如图,B 继承 A, C 继承 A, D 继承 B 和 C。深度优先遍历是从 D 开始往上搜索到 B,若 B 没有数据,则继续往上搜索到 A;广度优先遍历是从 D 开始往上搜索到 B,若 B 没有数据,则搜索和 B 同级的 C 里的数据,若同级的 C 里还是没有数据,再继续往上搜索到 A注:py2 经典类是按深度优先来继承的,新式类是按广度优先来继承的。py3 经典类和新式类都是统一按广度优先来继承的。...原创 2021-11-17 11:38:05 · 2624 阅读 · 0 评论 -
flask 简易并发方案
from flask import Flaskfrom gevent.wsgi import WSGIServerimport json app = Flask(__name__) @app.route("/", methods=['GET', 'POST'])def index(): return json.dumps({'res':'test'}) WSGIServer(('127.0.0.1', 8081), app).serve_forever()原创 2021-11-17 11:27:52 · 321 阅读 · 0 评论 -
python 异步接口
def fun4(k): sleep(5) print("fun4 start...") return k@dct.timer("t")def fun3(): ips = [1, 2, 3, 4, 5, 6] p = ThreadPoolExecutor() p.map(fun4, ips) # with ThreadPoolExecutor(max_workers=4) as p: # 会等待5s # p.map(fun4,原创 2021-11-17 10:58:26 · 955 阅读 · 0 评论 -
python 操作mongodb
python连接Mongodb添加索引:查找数据:替换数据:更新数据:原创 2021-11-16 14:52:21 · 772 阅读 · 0 评论 -
python numpy矩阵计算(根据目标矩阵和轮廓点求新矩阵)
def matrix_transformation(matrix, contour_list, inverse=False): """ :param matrix: 转换矩阵 要求:4*4 :param contour_list: 轮廓点列表 :param inverse: 转换矩阵是否求逆矩阵 :return: 转换后的矩阵 """ if isinstance(matrix, np.ndarray): if matrix.sh原创 2021-11-16 14:28:53 · 213 阅读 · 0 评论 -
python ProcessPoolExecutor 和ThreadPoolExecutor使用
from concurrent.futures import ProcessPoolExecutor, as_completed, ThreadPoolExecutordef func1(a, b): print(f"func1 start...") return {"k": a + b}def func2(c): print(f"func2 start...") return {"k1": c}def run(): d = {} res原创 2021-11-15 11:38:27 · 224 阅读 · 0 评论 -
python 进程之间共享资源
在这里插入代码片def func2(d, l):d[“index3”] = “c”d[“index4”] = “d”d.pop(“a”)l.append(55)l.append({“d”: 5})def run():d = multiprocessing.Manager().dict({“a”: 1})l = multiprocessing.Manager().list([{“q”: 1}])# p = multiprocessing.Process(target=func, args原创 2021-11-15 11:23:40 · 127 阅读 · 0 评论 -
python 时间戳,datetime ,时间字符,时间元组相互转换
在这里插入代码片```import datetime, time # 时间戳转时间字符串 timeStamp = time.time() dateArray = datetime.datetime.fromtimestamp(timeStamp) # 时间戳转datetime print(dateArray) print(type(dateArray)) otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M原创 2021-11-08 16:19:33 · 1106 阅读 · 0 评论 -
python configparser模块使用
func.conf 内容如下:[major]1=arch2=struc[arch]100=test1101=test2[struc]200=test3from configparser import ConfigParserimport osconf = ConfigParser()file_path = os.path.join(os.getcwd(), “func.conf”)res = conf.read(file_path, encoding=“utf8”)sectio原创 2021-11-08 15:35:11 · 420 阅读 · 0 评论 -
python gz压缩和解压
import osimport gzipimport io, jsonfrom io import BytesIO压缩cwd = os.getcwd()fn = str(“test”) + ‘.gz’fn = os.path.join(cwd, fn)item = {“q”: “jfhjakfhj”, “j”: “fkFKLFOPMPLMSM”}with gzip.open(fn, ‘wb’) as g:with io.TextIOWrapper(g, encoding=‘utf-8’)原创 2021-11-08 14:26:18 · 626 阅读 · 0 评论 -
shapely文档
https://www.osgeo.cn/shapely/manual.html#object.buffer原创 2021-11-08 14:14:03 · 256 阅读 · 0 评论 -
git命令
在当前目录新建一个 Git 代码库git init新建一个目录,将其初始化为 Git 代码库git init [project-name]下载一个项目和它的整个代码历史git clone [url]增加代码添加指定文件到暂存区git add [file1] [file2] …添加指定目录到暂存区,包括子目录git add [dir]添加当前目录的所有文件到暂存区git add .删除工作区文件,并且将这次删除放入暂存区git rm [file1] [file2] …停止追踪指定翻译 2021-11-08 14:09:34 · 440 阅读 · 0 评论 -
查看数据所占内存大小
import sys, jsondata = {“a”:12, “b”:“jsd”}print(sys.getsizeof(json.dumps(data)))sys.getsizeof对于不可变类型对象,返回的是对象本身内存大小可变类型对象,返回的是对象指针所占内存大小原创 2021-11-08 13:59:31 · 112 阅读 · 0 评论 -
监测函数运行内存
from memory_profiler import profile@profiledef func():pass原创 2021-11-08 13:52:07 · 56 阅读 · 0 评论 -
windows 下安装wordcloud 报错ImportError: DLL load failed: 找不到指定的模块
我先是pip install wordcloud 安装成功运行时由于导入模块import wordcloud时报错:ImportError: DLL load failed: 找不到指定的模块网上看了各种相同报错原因大致都是说模块不兼容导致的于是我卸载重新安装还是报错,于是尝试手动安装(建议安装matplotlib,numpy,scikit_learn,scipy这些模块时手动安装,pip 在线安装很容易出错,我这个问题就是因为使用pip在线安装导致的)1.首先下载4个whl格式的文件..翻译 2020-08-16 15:11:35 · 1419 阅读 · 2 评论 -
制作词云 wordcloud 参数配置
font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'width : int (default=400) #输出的画布宽度,默认为400像素height : int (default=200) #输出的画布高度,默认为200像素prefer_horizontal : float (default=0.90) #词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )mask .转载 2020-08-16 14:52:34 · 1927 阅读 · 0 评论 -
JWT token 认证原理
JWT token 分为三部分组成: 第一部分是头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature). 头部包含:1声明类型 这里是JWT 2声明加密的算法 通常直接用 HMAC SHA256加密 完整的头部就像下面这样的JSON:{ ‘typ’: ‘JWT’, ‘alg’: ‘HS256’ }...翻译 2018-08-22 19:01:03 · 744 阅读 · 0 评论