- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 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
3963
原创 数据库总结
1 mysql存储引擎及区别?存储引擎是针对与表的MyISAM①不支持事务,但是整个操作是原子性的(事务具备四种特性:原子性、一致性、隔离性、持久性)②不支持外键,支持表锁,每次所住的是整张表 MyISAM的表锁有读锁和写锁(两个锁都是表级别): 表共享读锁和表独占写锁。在对MyISAM表进行读操作时,不会阻塞其他用户对同一张表的读请求,但是会阻塞其他用户对表的写请求;对其进行写操作时会阻塞对同一表读操作和写操作 MyISAM存储引擎的读锁和写锁是互斥的,读写操作是串行的。那么,
2022-03-28 17:48:59
60
原创 Django知识总结
1 django中间件使用?中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。中间件可以定义五个方法,分别是:(主要的是pr
2022-03-27 00:43:51
44
原创 python面试题总结
1 python 内存管理机制: 引用计数: 当一个对象的引用被创建或复制时,对象的引用计数+1 当对象的引用被销毁时,对象的引用计数-1 当对象的引用计数减为0时,就意味着对象没有被使用,可以将其所占内 存释放了 引用计数法有很明显的优点: 1高效` 2运行期没有停顿 可以类比一下Ruby的垃圾回收机制,也......
2022-03-26 22:04:15
48
原创 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
4361
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
1106
原创 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
1772
原创 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
355
原创 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
2640
原创 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
331
原创 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
969
原创 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
224
原创 pycharm运行正常,debug报错
用pycharm调试的时候遇到报错如下UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xe5 in position 1023: unexpected end of data缺失可以直接运行不报错查了下报错原因,记录下出现异常报错是由于设置了decode()方法的第二个参数errors为严格(strict)形式造成的,因为默认就是这个参数,将其更改为ignore等即可r = r.decode(‘utf-8’)改为r = r.decode
2021-11-15 12:02:44
1427
原创 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
230
原创 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
131
原创 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
1139
原创 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
423
原创 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
643
翻译 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
459
原创 查看数据所占内存大小
import sys, jsondata = {“a”:12, “b”:“jsd”}print(sys.getsizeof(json.dumps(data)))sys.getsizeof对于不可变类型对象,返回的是对象本身内存大小可变类型对象,返回的是对象指针所占内存大小
2021-11-08 13:59:31
121
翻译 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
1434
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
1943
翻译 JWT token 认证原理
JWT token 分为三部分组成: 第一部分是头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature). 头部包含:1声明类型 这里是JWT 2声明加密的算法 通常直接用 HMAC SHA256加密 完整的头部就像下面这样的JSON:{ ‘typ’: ‘JWT’, ‘alg’: ‘HS256’ }...
2018-08-22 19:01:03
753
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人