![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
haeasringnar
这个作者很懒,什么都没留下…
展开
-
飞桨OCR打标、训练、预测、部署全流程
注:本文档全部在Windows10环境下操作注:本文档使用的飞桨OCR全景项目代码版本为 release/2.4查询文档列表:飞桨OCR官方中文文档:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/README_ch.md飞桨OCR for pdserving 部署官方文档:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/REA原创 2022-02-15 09:51:53 · 28100 阅读 · 5 评论 -
Python 使用 Web3.py 进行 ETH 和代币转账
Python使用Web3原创 2022-01-31 20:26:33 · 24465 阅读 · 5 评论 -
Python 处理人民币金额,大小写互转
在工作中经常可以遇到人民币金额大小写的转换问题,这里是以 Python3 实现的人民币大小写转换的脚本,实测可用,准确无误,最大支持16位以内的金额大小写转换。脚本如下,可以在本地启动后输入小写金额进行验证:# handleCNY.pyclass ChangeCNY(object): NUM_DICT = { '0': '零', '1': '壹', '2': '贰', '3': '叁', '4': '肆',原创 2021-12-07 17:20:03 · 4770 阅读 · 2 评论 -
Python 通过pyautogui进行自动化操作,截图定位
import pytestimport pyautoguiimport osimport timeimport allurefrom PIL import Imageimport cv2import aircv as acimport numpy as npif __name__ == "__main__": # pytest.main(['-s', r'D:\aeas\shendu_-ui_zidonghua\tests\test_zaoshang\test_zaoshang原创 2021-10-24 21:40:54 · 1879 阅读 · 0 评论 -
Python 对称加密ECB简单实现
利用pycrypto中的方法来实现简单的ECB对称加密具体代码如下from base64 import b64decodefrom base64 import b64encodefrom Crypto.Cipher import AES # pip install pycrypto==2.6.1import timeclass ECBCipher(object): ''' 定义一个基于AES的ECB模式的加解密类 ''' def __init__(self,原创 2021-10-24 21:34:18 · 1134 阅读 · 0 评论 -
数据分析时利用 Python3 生成大量数据集CSV的通用脚本
在做数据分析时可能会需要很多数据来做测试,但数据并不是每次都能找到合适的,所以可以通过一些方法生成一些数据来做计算,可以根据自己的需求来生成需要的数据。实现方式就是利用多进程多线程来并发的生成数据,主要用于生成大量数据集的数据CSV文件主要代码如下:# create_data_util.pyimport timeimport randomfrom multiprocessing import Process, Manager, Poolfrom threading import Thread原创 2021-01-31 22:45:40 · 1324 阅读 · 0 评论 -
使用 influxdb 包向 influxdb 数据库批量插入csv中的数据
1、安装相关的包pip install influxdb==5.3.1pip install pandas==1.1.32、具体代码先准备一个csv的数据文件 命名为test.csv脚本会将csv中的数据批量插入到influxdb数据库import csvfrom influxdb import InfluxDBClientimport osimport jsonimport timeimport datetimedef main(): # 连接influxdb数据库原创 2020-12-30 19:40:33 · 1330 阅读 · 0 评论 -
Python 使用xlwt xlrd 读写表格数据
1、安装相关包pip install xlrd xlwt2、使用xlwt写表格数据import xlwtdef main(): init_data1 = { "姓名": ['张三', '李四', '王五', '王二'], "年龄": [23, 22,12,43], } book = xlwt.Workbook(encoding="utf-8",style_compression=0) sheet1 = book.add_she原创 2020-11-29 16:55:04 · 755 阅读 · 0 评论 -
总结:Python 轻量级序列化和反序列化包 marshmallow 详细使用指南
第一部分、marshmallow 基本的数据类型及基础属性介绍1、基础数据类型fields.String(*, default, missing, data_key, …) 字符串类型fields.UUID(*, default, missing, data_key, …) UUID字符串类型fields.Integer(*, strict, **kwargs) 整数类型fields.Decimal(places, rounding, *, allow_nan, …) 支持Python中的deci原创 2020-10-28 18:55:58 · 3133 阅读 · 0 评论 -
Python 基于Redis实现一个分布式读写锁
1、简述出现背景Python 基于redis实现一个简单的分布式锁Python 基于Redis实现一个分布式可重入锁在前面实现了简单分布式锁是用来解决分布式场景下的并发写数据问题,分布式可重入锁是用来解决并发场景下同一线程下再次或多次获得锁的问题。那么分布式读写锁又是解决什么问题的呢?首先来理解下概念,读写锁其实可以拆分为读锁和写锁,又称共享锁和排它锁,没错,和MySQL中的共享锁、排它锁几乎是同一个东西。那可能就有同学要问了,既然MySQL有,还用Redis实现干什么,因为Redis足够快。它原创 2020-09-01 15:45:40 · 1136 阅读 · 0 评论 -
Python 基于Redis实现一个分布式可重入锁
1、简述出现背景Python 基于redis实现一个简单的分布式锁前面实现了一个简单的分布式锁,它在某些场景下可以有效的处理并发写数据问题。但是如果我们在某个线程中需要二次或多次获得同一个锁,这个分布式锁就会出现死锁,一直等待第一个加锁逻辑结束后才能继续进行,并且会直接导致当前的业务逻辑的异常和超时。因此还需要实现一种分布式可重入锁,来应对这种场景。2、简述原理简述一下可重入锁实现原理:首先在加锁时,进行判断是否能获得锁,如果获得锁,那么此时维护一个计数器,并在获得锁时设置计数器值为0。然后如果是同原创 2020-09-01 15:20:00 · 535 阅读 · 0 评论 -
Python 使用unittest进行接口测试
1、准备发起请求的类本例的目录结构如下tests/├── request_obj.py├── run_test.py└── test_public.py本例使用requests库封装一个请求的类来使用首先安装requests库pip install requests下面就来创建一个文件,命名为request_obj.py,输入一下内容:import requestsimport osimport jsonimport randomfrom io import BytesIO原创 2020-08-06 21:38:40 · 500 阅读 · 0 评论 -
Python 轻量级ORM框架Peewee的使用指南
1、基础:初始化数据库:db = MySQLDatabase('database_name', user='www-data', charset='utf8mb4')创建model:class BaseModel(Model): class Meta: database = dbclass User(BaseModel): name = CharField(unique = True) age = IntegerField() sex = Cha原创 2020-07-29 20:39:42 · 3950 阅读 · 0 评论 -
Python3 元类编程
在Python中一切接对象,类也是一个对象,所有的类都是有type类创建,我们实际开发中最常用的type方法,是用来获取某个对象的类型的,例如type(1) ⇒ int 、type(‘str’) ⇒ str。但是type还有一种用法,就是用来创建类的。1、通过type动态创建无父类、无属性的类People = type('People', (), {})p = People()print(p)2、通过type动态创建有父类、无属性的类class Animal(object): nam原创 2020-06-30 21:47:06 · 299 阅读 · 0 评论 -
Python 基于Redis实现一个简单的分布式锁
# redis_lock.pyimport redisimport timeimport threading# 连接池方式pool = redis.ConnectionPool(host='127.0.0.1',port=6379)redis_con = redis.Redis(connection_pool=pool)class RedisLock(object): def __init__(self): self.redis_con = redis_con原创 2020-06-27 21:20:18 · 636 阅读 · 0 评论 -
Python 中装饰器加括号和不加括号的区别
在Python 中使用装饰器的时候,可能会碰到加括号装饰和不加括号装饰器的情况。那么这两种情况到底有什么区别呢?下面分为两种情况来说明第一种:必须不叫括号才能正常装饰的写法import time# 1、这种装饰不能携带括号,否则没法运行。因为@timer() 解释器在执行时会先执行 timer 函数,所以没法运行def timer(func): def test3(*args,**kwargs): print('查看是否携带参数:', args, kwargs)原创 2020-05-30 15:00:23 · 1450 阅读 · 1 评论 -
Python3 网络编程 socket 库使用TCP协议实现文件上传、进度条、大文件断点续传
1、基于socket库 TCP 协议实现普通小文件上传客户端代码:# tcp_small_file_client.pyimport socketimport osimport jsonclient = socket.socket()client.connect(('127.0.0.1', 9090))menu = {"1":"upload","2":"download","3":"exit"}for key,val in menu.items(): print(key, val原创 2020-05-30 14:59:35 · 1347 阅读 · 1 评论 -
Python 多线程死锁的示例
在 Python 中多线程中为了防止资源竞争而出现问题,提供了锁的机制,当一个线程操作资源时进行加锁,操作完毕后释放锁,这样其他线程就不会同时操作资源导出出现异常。在 Python 多线程中注意是两种锁:互斥锁和递归锁那么它们有什么区别呢?互斥锁:一旦一个线程获得一个互斥锁,会阻塞随后尝试获得锁的线程,直到它被释放;任何线程都可以释放它。递归锁:递归锁必须由获取它的线程释放。一旦线程获得了递归锁,同一个线程再次获取它将不阻塞;线程必须在每次获取它时释放一次。虽然锁可以防止程序出问题,但是使用锁原创 2020-05-25 21:07:24 · 467 阅读 · 0 评论 -
Python3 基于协程asyncio的消费者模式
注意本例运行在Linux环境下本例模拟一个生产者每2-4秒生成一个消息,然后有多个消费者消费这些消息。暂定每个消费者消费一个消息耗时10秒,这样可以使每个消费者都能消费消息import timeimport asyncioimport queueimport threadingimport uuidimport random'''基于协程的消费者模型,多个协程充当worker消...原创 2020-04-30 22:35:49 · 820 阅读 · 0 评论 -
Python3 基于线程、协程并发请求、大并发爬虫方法之一
from gevent import monkey; monkey.patch_all()import asyncioimport timeimport requestsimport aiohttpimport sysimport threadingimport geventimport queue'''基于协程的各种并发请求示例在运行程序时 传入指定的命令行参数来开启执行的...原创 2020-04-30 22:24:48 · 423 阅读 · 0 评论 -
Python3 使用多线程、协程并发请求的比较
1、安装相关的库pip install gevent requests aiohttp2、实际代码演示import asyncioimport timefrom gevent import monkey; monkey.patch_all()import requestsimport aiohttpimport sysimport threadingimport gevent...原创 2020-04-30 21:20:59 · 1856 阅读 · 0 评论 -
Python3.7 高级编程之 async/await asyncio 事件循环的使用
什么是事件循环:事件循环是每个 asyncio 应用的核心。 事件循环会运行异步任务和回调,执行网络 IO 操作,以及运行子进程。说简单点就是由于python是单线程的 程序在执行中会将所有任务放到队列中去逐一执行,当发现阻塞时就去执行其他任务,知道程序结束。应用开发者通常应当使用高层级的 asyncio 函数,例如 asyncio.run(),应当很少有必要引用循环对象或调用其方法。主要...原创 2020-04-29 22:39:16 · 2102 阅读 · 0 评论 -
Python3 浮点数精度问题
'''很多语言中都有浮点数数据精度的问题,Python中也是例如:0.1 + 0.2 应该等于0.3 但结果 事实上是 0.30000000004首先说原因: 1、小数转换成二进制的方法:将小数部分先乘以2,记录整数部分,然后将得到的结果的小数部分乘以2,记录整数部分,直到乘法得到的结果是整数1时停止。 实例:0.1的二进制计算方法如下 0.1*2=0.2 ...原创 2020-04-29 22:38:37 · 8379 阅读 · 0 评论 -
Python 实现常见算法之二分法查找
什么是搜索搜索(又叫查找)是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找什么是二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。# 二分法查找基于Python语言的实现'''二分查找: 二分查...原创 2020-02-11 15:11:56 · 1591 阅读 · 0 评论 -
Python 数据结构之二叉树的实现
1、基本概念二叉树 是一种简单的树形结构,是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树是一种递归结构。二叉树的基本概念空树:不包含任何节点的二叉树成为空树。只包含一个节点的二叉树称为一个单点树。父节点和子节点:一颗二叉树的根节点称为该数的子树根节点的父节点,与之对应的,子数的根节点称为二叉树树根节...原创 2020-02-09 16:43:02 · 855 阅读 · 0 评论 -
Python 数据结构之双向链表的实现
双向链表:即每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。当节点既是头结点又是尾节点时,两个链接均为空值。# 双向链表基于Python语言的实现'''双向链表需要实现的方法:is_empty() 链表是否为空len() 链表长度travel() 遍历整个链表add(item) 链表头部添加元...原创 2020-02-06 16:22:59 · 623 阅读 · 0 评论 -
Python 数据结构之单向循环链表的实现
单向循环链表:单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。# 单向循环链表基于Python语言的实现'''单向循环链表需要实现的方法:is_empty() 链表是否为空len() 链表长度travel() 遍历整个链表add(item) 链表头部添加元素append(item) 链表尾部添加元素insert(pos, ...原创 2020-02-06 16:22:35 · 459 阅读 · 0 评论 -
Python 数据结构之单向链表的实现
# 单链表的实现'''单向链表需要实现的方法:is_empty() 链表是否为空len() 链表长度travel() 遍历整个链表add(item) 链表头部添加元素append(item) 链表尾部添加元素insert(pos, item) 指定位置添加元素remove(item) 删除节点search(item) 查找节点是否存在'''class Node(objec...原创 2020-02-06 16:22:07 · 381 阅读 · 0 评论 -
Python 重学requests发起请求的基本方式
安装相关模块pip install requests requests-toolbelt代码实例import requestsimport jsonfrom PIL import Imagefrom io import BytesIOfrom requests_toolbelt import MultipartEncoder'''使用 requests 请求返回的 respon...原创 2020-02-06 15:59:35 · 526 阅读 · 0 评论 -
Python 标准库base64、hmac、hashlib的基本使用
base64import base64 # Base64是一种用64个字符来表示任意二进制数据的方法。常用于在URL、Cookie、网页中传输少量二进制数据。encode_val = base64.b64encode('test ak47'.encode()) # 将bytes类型转换成base64类型 返回一个bytes类型decode_val = base64.b64decode(...原创 2020-02-06 15:58:58 · 1275 阅读 · 0 评论 -
Python 高阶函数lambda、map、reduce、filter、zip、sorted等使用
print('****************************************************lambda*************************************************************')# lambda函数 就是所谓的匿名函数g = lambda x,y:x + y # 就是返回x+y的值print(g(5,3))g ...原创 2020-02-06 15:58:00 · 635 阅读 · 1 评论 -
Python 使用pillow合并两个图像
from PIL import Image # pillow 基本上已经是Python平台上图像处理标准库了。他的功能很强大,但API却很简单实用。from io import BytesIOimport requests'''常有方法Image.format 识别图像格式或来源,如果图像不是从文件读取的,值是NoneImage.mode 图像的色彩模式 L灰度图像 RGB彩色图像 ...原创 2020-01-13 16:53:23 · 6858 阅读 · 0 评论 -
因为依赖问题无法安装mysqlclient时的解决方案记录
Ubuntu系统下:sudo apt install libmysqld-dev python3-dev python-dev openssl-devel gcc libffi-devel python-devel libmysqlclient-dev libssl-dev libcrypto++-dev build-essentialCentos系统下:yum install libmy...原创 2019-12-19 16:55:20 · 970 阅读 · 0 评论 -
Python中密码加密存储
Python中密码加密存储(Django、Flask等)# 导入密码加密模块import hashlib# 1.创建一个hash对象h = hashlib.sha256()# 2.填充要加密的数据passwordstr = '123456'h.update(bytes(passwordstr, encoding='utf-8'))# 3.获取加密结果pawd_result = h.h原创 2017-12-21 13:58:06 · 12052 阅读 · 0 评论 -
Python装饰器最经典教程,以最易理解的方式教会你
开场白什么是装饰器? 装饰器: 定义:本质是函数,是用来装饰其他函数,就是为其他函数添加附加功能 原则:1.不能修改被装饰函数的源代码 2.不能修改被装饰的调用方式 装饰器有什么用? 如果这写函数正在运行中,现在又需要修改程序,问怎么做? 这就是用装饰器的用处你需要具备的知识函数即变量 高阶函数 1.把一个函数名当做实参传给另外一个函数 2.返回原创 2017-12-21 15:06:49 · 4227 阅读 · 0 评论 -
Python中OS、SYS、模块使用
os模块os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: (‘.’) os.pardir 获取当前目录的父目录字符串名:(‘..’) os.makedirs(‘dirname1/dirname2’) 可生成多层递归目录 os.r原创 2017-12-26 15:18:06 · 4222 阅读 · 0 评论 -
Python模块之turtle使用大全!
(1)什么是turtleTurtle是python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。(2)turtle函数的使用turtle.pendown() # 放下画笔 turtle.penup() # 抬起画笔 turtle.pensize(int) #原创 2017-12-26 15:23:32 · 27302 阅读 · 2 评论 -
Python3爬虫urllib之善用模块-GET请求批量下载贴吧页面
接下来就直接进代码咯,开始吧!# http://tieba.baidu.com/f?kw=python3&ie=utf-8 第一页 其实就是pn=0# http://tieba.baidu.com/f?kw=python3&ie=utf-8&pn=50 第二页# http://tieba.baidu.com/f?kw=python3&ie=utf-8&pn=100 第三页#页码规律原创 2018-01-11 10:58:03 · 4748 阅读 · 0 评论 -
Python模块之tkinter使用大全!
Button一个用来执行一条命令的简单按钮Canvas结构化的图形,用于绘制图形、创建图形编辑器以及实现自制的小构件Checkbutton单机复选按钮之间切换Entry一个文本输入域、也称为文本域或文本框Frame包含其他小构件的一个容器小构件Label显示文本或图像Menu用来实现下拉和弹出菜单的菜单栏Menubutton用来实现下拉菜单的菜单按钮Message显示文本,类似于标签小构件,但能自动原创 2017-12-27 10:54:59 · 6744 阅读 · 0 评论 -
Python实现定制的字典,定制序列!!!
话不多说直接上代码:class ImmutableDict(object): def __init__(self,**dic): self.key = [] self.value = [] for key in dic: self.key.append(key) self.value.append原创 2017-12-27 11:03:10 · 5171 阅读 · 0 评论