![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 55
谷满满
这个作者很懒,什么都没留下…
展开
-
Unable to find “setuptools-XX.X.X-pyX.X.egg\EGG-INFO“ when adding binary and data files解决办法
报错内容Unable to find “某个盘:\某个目录\venv\lib\site-packages\setuptools-40.8.0-py3.7.egg\EGG-INFO” when adding binary and data files.解决办法使用pip install setuptools安装setuptools工具,如果依然报错找不到进入 某个盘:\某个目录\venv\lib\site-packages\ 文件下如下图:发现setuptools-40.8.0-py3.7.egg是E转载 2022-07-05 14:59:25 · 1389 阅读 · 0 评论 -
pyinstaller打包过程中 no module named 问题
运行pyinstaller打包后程序,出现no module named 问题的解决方案如当出现报错:No module named 'matplotlib.backends. backend_tkagg'转载 2022-07-05 14:43:28 · 2708 阅读 · 1 评论 -
python click模块option
1234import click@click.command()@click.option('--count', default=1, help='Number of greetings.')@click.option('--name', prompt='Your name', help='The person to greet.')def hello(count, name): """Simple program that greets...原创 2022-05-31 13:20:26 · 891 阅读 · 0 评论 -
python socket TCP
说明1、TCP是可靠的数据连接,send过去的数据,一定会被对方接收到,除非连接断开。2、TCP和上层应用之间是网络层和应用层之间的关系,TCP收到的ACK只能表明对端TCP收到了相应的数据在内核缓存中,对端应用是否读取到了这条消息,是不能判断的3、每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区。socket 接收缓冲区1、接收缓冲区把数据缓存入内核,应用进程一直没有调用read进行读取的话,此数据会一直缓存在相应 socket的接收缓冲区内。2、转载 2022-05-27 16:21:49 · 2308 阅读 · 0 评论 -
python struct序列化
使用示例from struct import pack,unpack,calcsize i= 9999 f = 9.8 b = True s1 = r'C:\Python38\Python.exe' s2 = r'《Python程序设计(第3版)》,董付国编著'd={'红色'∶(1,0,0),'绿色'∶(0,1,0),'蓝色'∶(0,0,1)}# 对已有数据进行序列化,得到字节串 # 第一个字符可以为>、<、=,不进行字节填充,# 反序列化时必须使用同样的前缀字符转载 2022-05-27 14:45:03 · 299 阅读 · 0 评论 -
Python:使用基于事件驱动的SAX解析XML
SAX的特点基于事件的 API 在一个比 DOM 低的级别上操作 为您提供比 DOM 更多的控制 几乎总是比 DOM 更有效率 需要比 DOM 更多的工作基于对象和基于事件的接口1、语法分析器有两类接口 - 基于对象的(如:DOM)和基于事件(如:SAX)的接口。2、DOM是基于对象的语法分析器的标准 API。3、作为基于对象的接口,DOM 通过在内存中显示地构建对象树来与应用程序通信。对象树是 XML 文件中元素树的精确映射。4、DOM 易于学习和使用,因转载 2022-05-27 11:35:17 · 440 阅读 · 0 评论 -
python中报错json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotesJSON数据格式里string类型的数据要用双引号'' '',而不能用单引号' '。原创 2022-05-26 17:22:12 · 3819 阅读 · 0 评论 -
python sorted函数
功能sorted() 函数是全局排序函数,对所有可迭代的对象进行排序操作,不会修改原对象,而将排序后的结果作为函数的返回值。语法sorted(iterable, key=None, reverse=False)默认升序排列,reverse=True为降序排列排序key结合lambda表达式使用sort_dict = [{'name': 'alice', 'score': 38}, {'name': 'darl', 'score': 28}, {'name': 'chri..原创 2022-05-26 15:30:27 · 157 阅读 · 0 评论 -
python 枚举库Enum
举例from enum import IntEnum, Enum, unique@uniqueclass Sex(IntEnum): male = 1 female = 2class Color(Enum): RED = 'red' GREEN = 2 BLUE = 3注意点1、枚举表示的是常量,因此,建议枚举成员名称使使用大写字母2、unique确保一个名称只绑定一个值的 Enum 类装饰器。若要不能定义相同的成员值,可以通过 unique原创 2022-03-28 15:14:37 · 2224 阅读 · 0 评论 -
python查找目录下指定内容
import osimport codecsimport redef search_all(dir_path): # os.path.getmtime() 函数是获取文件最后修改时间 # os.path.getctime() 函数是获取文件最后创建时间 # 按最后的修改时间,对文件进行排序 files = sorted(os.listdir(file_path), key=lambda x: os.path.getmtime(os.path.join(file_p..原创 2022-03-28 13:50:16 · 954 阅读 · 0 评论 -
python xlwt生成Excel
代码示例# -*- coding: UTF-8 -*-import xlwtdef write_excel(): # 创建excel对象 f = xlwt.Workbook() # 添加sheet页 sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True) # 定义标题单元格格式 style_title = xlwt.XFStyle() # 设置单元格内容自动换行 style.原创 2022-03-28 11:29:03 · 1137 阅读 · 0 评论 -
Python 协程Coroutine
定义协程,又称微线程,纤程。英文名Coroutine。通过 async/await 语法进行声明。需要 Python 3.7+特点协程的特点在于是一个线程执行,可以处理IO密集型程序的效率问题,但是处理CPU密集型不是它的长处,如要充分发挥CPU利用率可以结合多进程+协程。优势最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。第二大优势就是不需要多线程的锁机制,因..原创 2022-03-18 14:22:43 · 1433 阅读 · 0 评论 -
Python requests.post()超时设置
requests.post(),默认是阻塞的,除非显式指定了 timeout 值,否则不会做超时处理。参数值参数 描述 url 必须。请求的网址 data 可选。字典,元组列表,字节或要发送到指定URL的文件对象 json 可选。要发送到指定URL的JSON对象 files 可选。要发送到指定URL的文件字典 allow_redirects 可选。用于启用/禁用重定向的布尔值。 默认Tru原创 2022-03-18 09:54:22 · 17060 阅读 · 1 评论 -
定位程序执行耗时的代码段
Python 性能分析工具 pyinstrument安装:pip install pyinstrument以Fast API演示其使用from fastapi import FastAPI, Requestfrom fastapi.middleware.cors import CORSMiddlewarefrom fastapi.openapi.docs import ( get_redoc_html, get_swagger_ui_html, get_swagge原创 2022-01-19 10:01:47 · 430 阅读 · 0 评论 -
Python程序退出时执行指定代码
一:捕获所有的异常二:采用traceback模块查看异常,需要导入traceback模块,这个方法会打印出异常代码的行号三:调用atexitimport atexitimport signalimport tracebackimport logginglogger = logging.getLogger(__name__)# 如果程序被Python未处理的信号终止,或者出现内部错误,或者调用了os._exit(),则不会执行atexit处理程序。@atexit.regis..原创 2022-01-19 09:34:25 · 2506 阅读 · 0 评论 -
Python 线程threading
Python多线程适用于I/O密集型GIL的全称是Global Interpreter Lock(全局解释器锁),为了数据安全,GIL保证同一时间只能有一个线程拿到数据。所以,在python中,同时只能执行一个线程。而IO密集型,多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。所以python多线程对IO密集型代码比较友好。而CPU密集型(各种循环处理、计算等等),由于原创 2021-11-01 12:09:50 · 13123 阅读 · 0 评论 -
python time和datetime、pytz
日期格式说明:%y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M 分钟数(00=59)%S 秒(00-59)预设变量:time_str = '2019-10-04 16:08:08'一、time1、时...原创 2021-10-28 09:15:50 · 119 阅读 · 0 评论 -
Python定时任务Schedule
安装pip install schedule设置定时任务设置间隔长度:every()设置时间类型:seconds、minutes、day、days、monday、tuesday、wednesday、thursday、friday、saturday、sunday设置具体时间:at()设置任务:do()举例#每隔10秒钟执行一次schedule.every(10).seconds.do(job)#每隔10分钟执行一次schedule.every(...原创 2021-10-27 11:06:40 · 977 阅读 · 0 评论 -
python 建立DB连接插件DBUtils
DBUtils概述DBUtils 是一套用于管理数据库连接池的Python包,为高频度高并发的数据库访问提供更好的性能,可以自动管理连接对象的创建和释放。在程序创建连接的时候,可以从一个空闲的连接中获取,不需要重新初始化连接,提升获取连接的速度;关闭连接的时候,把连接放回连接池,而不是真正的关闭,所以可以减少频繁地打开和关闭连接。DBUtils提供两种外部接口:* PersistentDB :提供线程专用的数据库连接,并自动管理连接。* PooledDB :提供线程间可共享的数据..原创 2021-10-22 10:40:59 · 522 阅读 · 0 评论 -
Python带时区的日期
import pytz# 当前时间取得now = datetime.datetime.now()# 设定时区tz = pytz.timezone('Asia/Shanghai')# 含有当前时区的时间time_zone = tz.localize(now)原创 2021-09-30 14:58:01 · 405 阅读 · 0 评论 -
Python unittest使用
一:避坑点1、使用unittest时,默认不会执行if __name__ == '__main__':,而是以“Run 'Unittests in XXX' ”方式运行。我们需要通过menu:Run->Edit Configurations打开配置窗口,在Python下,新建一个运行方式case_python(名字自取),将运行的脚本加入,保存后,以此方式运行测试脚本,就能进入方法if __name__ == '__main__':。script path填入脚本的路径。Wor.原创 2021-09-14 14:50:09 · 959 阅读 · 0 评论 -
算法:最大层内元素和
题目给你一个二叉树的根节点root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。请你找出层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中最小 的那个。输入:root = [1,7,0,7,-8,null,null]输出:2解释:第 1 层各元素之和为 1,第 2 层各元素之和为 7 + 0 = 7,第 3 层各元素之和为 7 + -8 = -1,所以我们返回第 2 层的层号,它的层内元素之和最大。来源:力扣(LeetCode)链..原创 2021-07-21 10:10:29 · 126 阅读 · 0 评论 -
算法:6、在排序数组中查找数字 I出现的次数
二分法解题classSolution:defsearch(self,nums:List[int],target:int)->int:#二分法查找end_index=len(nums)-1#数组长度为0时,返回0ifend_index<0:return0start_index=0r=0...原创 2021-07-16 12:01:54 · 86 阅读 · 0 评论 -
算法:5、绝对差值和
题目:给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n 。数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的 总和(下标从 0 开始)。你可以选用 nums1 中的 任意一个 元素来替换 nums1 中的 至多 一个元素,以 最小化 绝对差值和。在替换数组 nums1 中最多一个元素 之后 ,返回最小绝对差值和。因为答案可能很大,所以需要对 109 + 7 取余 后返回。来源原创 2021-07-16 09:58:57 · 1523 阅读 · 0 评论 -
算法:4、天际线问题Python
1:题目城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti 是第 i 座建筑物左边缘的 x 坐标。righti 是第 i 座建筑物右边缘的 x 坐标。heighti 是第 i 座建筑物的高度。天际线 应该表示为由 “关键点” 组成的列表,格式 [[x1原创 2021-07-14 16:18:11 · 683 阅读 · 0 评论 -
算法:3、给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
1、题目# 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。# 示例 1:## 输入:nums = [-2,1,-3,4,-1,2,1,-5,4]# 输出:6# 解释:连续子数组[4,-1,2,1] 的和最大,为6 。# 示例 2:## 输入:nums = [1]# 输出:1# 示例 3:## 输入:nums = [0]# 输出:0# 示例 4:## 输入:nums = [-1]# 输出:-1# 示例 5:...原创 2021-07-13 11:07:23 · 3259 阅读 · 1 评论 -
算法:2、正整数组成的集合 nums ,返回其中最大的整除子集 answer
1:题目 给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足: answer[i] % answer[j] == 0 ,或 answer[j] % answer[i] == 0 如果存在多个有效解子集,返回其中任何一个均可。 示例 1: 输入:nums = [1,2,3] 输出:[1,2] 解释:[1,3] 也会被视为正确答案。 示例 2: 输入:nums原创 2021-07-12 14:38:15 · 719 阅读 · 0 评论 -
算法:1.大餐计数
需求描述:大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 10**9 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9].原创 2021-07-09 14:51:05 · 186 阅读 · 0 评论 -
Python 对象、值与类型
对象是 Python 中对数据的抽象。 Python 程序中的所有数据都是由对象或对象间关系来表示的。原创 2021-06-16 14:35:57 · 307 阅读 · 0 评论 -
django 连接多个数据库
在项目的settings同级目录下,创建一个文件database_router.py,文件内容如下:# database_router.pyfrom django.conf import settingsDATABASE_MAPPING = settings.DATABASE_APPS_MAPPINGclass DatabaseAppsRouter(object): """ A router to control all database operations on m.原创 2021-04-23 12:56:31 · 295 阅读 · 2 评论 -
python 请求接口
url中的参数放到param中GET 方式param1 = xxxxparam2 = yyyparam3 = zzzparam = { 'param1': param1, 'param2': param2, 'param3': param3 }# 请求的urlrequest_url = 'https://xxxx'r = requests.get(request_ur...原创 2021-04-23 11:58:42 · 527 阅读 · 0 评论 -
python cursor结果转为带有索引的结果集
def dictfetchall(cursor): columns = [col[0] for col in cursor.description] return [ dict(zip(columns, row)) for row in cursor.fetchall() ]原创 2021-04-23 11:43:53 · 318 阅读 · 0 评论 -
python 发送邮件
发送邮件def send_mail(): # 发送者邮箱 sender = 'send@qq.com' # 邮件抬头 subject = '新增产品' # 邮件内容 mail_msg = '邮件内容' # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码 message = MIMEText(mail_msg, 'html', 'utf-8') message['From'] = _fo...原创 2021-04-22 18:00:21 · 165 阅读 · 0 评论 -
python 写文件
# 上传文件def upload_file(file, fileName, fileSuffix, path): # 存储路径 mk_path = 'path' # 判断目录是否已经存在 mk_path_exist = Path(mk_path) # 存在时,删除目录下的相应文件 if mk_path_exist.is_dir(): file_list = os.listdir(mk_path) for f in file_.原创 2021-04-22 17:56:42 · 101 阅读 · 0 评论 -
python迭代器和生成器
迭代器1:迭代是Python最强大的功能之一,是访问集合元素的一种方式。2:迭代器是一个可以记住遍历的位置的对象。3:迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。4:迭代器有两个基本的方法:iter()(该方法返回的是当前对象的迭代器类的实例) 和 next()(访问迭代器的元素)。5:字符串,列表或元组对象都可用于创建迭代器。6:迭代器对象可以使用常规for语句进行遍历。创建一个迭代器1:把一个类作为一个迭代器使用需要在类转载 2021-04-10 16:49:11 · 61 阅读 · 0 评论 -
python的元类
元类是类的类,是类的模板,元类的主要目的是为了控制类的创建行为。type是Python的一个内建元类,用来直接控制生成类,在python当中任何class定义的类其实都是type类实例化的结果。自定义元类继承了type类的自定义类,称为自定义元类。未继承type类的自定义类,就是一个普通的自定义类。类由三大组成1、类名class_name2、继承关系class_bases3、类的名称空间class_dict创建一个类的方式1:使用class关键字(p...原创 2021-04-10 16:01:42 · 123 阅读 · 0 评论 -
Python中is和==的区别
Python 中一切都是对象,Python中对象包含的三个基本要素id(身份标识)、type(数据类型)、value(值)。is 和 ==是什么is:同一性运算符,判断两个变量引用对象是否为同一个,就是所引用的对象的内存地址是否一致(两个对象的id值是否相等)。==:比较操作符,比较两个对象的内容是否相等,默认会调用对象的__eq__()方法。is的执行结果说明int一:当值在[-5, 256]范围内时,两个对象使用is比较时,返回的是True例:a=1 ...原创 2021-04-09 10:39:11 · 408 阅读 · 0 评论 -
python 日期加减
import datetime, timefrom dateutil.relativedelta import relativedelta# 与当前相差天数def get_diff_days_2_now(date_str): now_time = time.localtime(time.time()) compare_time = time.strptime(date_str, "%Y-%m-%d") # 比较日期 date1 = datetime.datetime(.原创 2020-09-03 16:08:31 · 1776 阅读 · 0 评论 -
django rest framework uploadFile并保存在服务器
from rest_framework.parsers import MultiPartParserfrom rest_framework.decorators import parser_classesfrom django.views.decorators.csrf import csrf_exempt#不进行csrf验证from rest_framework.authentication i...原创 2018-04-20 16:43:03 · 5642 阅读 · 0 评论 -
django使用自定义sql
from django.db import connectionfrom rest_framework.response import Response# 查询def search(date): # 年 year = date[:3] # 月 month = date[-2:] # 获取当月第一天的星期和当月的总天数 first_da...原创 2019-03-20 16:09:58 · 956 阅读 · 0 评论