python基础
文章平均质量分 67
风华浪浪
这个作者很懒,什么都没留下…
展开
-
python基础之dynaconf配置参数,背景、示例、方法(根据环境动态配置参数)
【代码】python基础之dynaconf配置参数,背景、示例、方法(根据环境动态配置参数)原创 2024-03-13 18:38:50 · 710 阅读 · 0 评论 -
python 之xml 使用原生xml.dom
将一个xml文档某个元素插入另一个文档,插入另一文档中。将某个文档直接插入另一个文档的某个节点下。将一个文档下的子节点放入另外一个节点。将另个文档中的节点,插入指定节点。通过父节点定义子节点 并获取值。原创 2023-10-12 00:44:55 · 738 阅读 · 0 评论 -
python 之 excel 模块 xlrd、xlwt、xlutils、openpyxl 读写、copy、单元格样式、过滤、合并、修改
import xlutils 修改Excel,在原来的基础上修改。xlwt写入 列数不能超过256,可以用xlsxwriter库。import xlwt 只能写Excel。import xlrd 只能读Excel。将excel一个模板格式复制到新建的工作簿中。向某个表格写入数据(单元格坐标如A3、B4)table.nrows 某个表的总行数。xlwt 列数不能超过256。原创 2019-12-21 01:44:27 · 3217 阅读 · 0 评论 -
python 之 进程与线程区别、GIL锁产生背景及对Python性能的影响?python的多线程是假的,为啥还用多线程
GIL全局解释锁全局解释锁: 每个线程在执行过程的过程都需要先获取GIL,确保在同一时刻只有一个线程可以执行字节码,目的是简化CPython的设计, 保证线程安全在I0操作等可能会引起阻塞的system call之前,可以暂时释放GIL,但在执行完毕后,必须重新获取GILPython 3.x使用计时器(执行时间达到國值后,当前线程释放GIL)或Python 2.x, tickets计t数达到100python使用多进程是可以利用多核的CPU资源的。原创 2023-08-18 11:42:05 · 257 阅读 · 0 评论 -
python 之 浮点数精度丢失例如:0.1 + 0.2,产生的原因、问题的推导、解决的方案
python是以双精度(64bit)来保存浮点数的,后面多余的会被砍掉,所以在电脑上实际保存的已经小于0.1的值了,后面拿来參与运算就产生了误差。浮点数的总数是无限且不可数的,浮点数在计算机占用的内存是有限的,计算机内存占满了。不可能用有限的内存空间存储无限多的浮点,后面多余的部分都会被砍掉。同上并不是所有的十进制数都可以用二进制格式精确表示,计算机基本上使用二进制数字,即 0 或 1表示;有些是使用有限数量的二进制数字来近似的。计算机的浮点类型也是由二进制表示的。原创 2023-07-27 14:11:02 · 2445 阅读 · 0 评论 -
python 之 maketrans、translate应用场景、底层原理、使用方式
更进一步,使用unicodedata程序包生成大型重映射表,并使用其中的combining()进行生成和映射。在一些敏感数据中,我们需要进行一个数据关系的映射保存我们的的数据不会被进行抓去,或者提高抓取的难度。到空格符\ n和\ t都被替换成了单个空格,\ r都被删掉。原创 2023-07-10 18:05:13 · 784 阅读 · 0 评论 -
如何用python 执行一些linux 命令同时得到返回值的三种方法
因为一条命令可能有部分正确,有部分不正确,正确的输出正确的管道,错误结果输出错误管道。为什么即有错误管道,又有正确管道?原创 2023-05-20 11:40:42 · 1821 阅读 · 0 评论 -
python 之反射机制 hasattr、getattr、setattr、delattr
指在运行时检查、访问和修改对象的属性和方法,而不需要提前知道这些属性和方法。原创 2023-05-22 15:28:12 · 944 阅读 · 0 评论 -
python之lambda使用场景、回收机制、应用示例
匿名函数(lambda函数): 在Python中,lambda函数是一种简洁的、在定义时不需要命名的小型函数。通常,lambda函数都非常简单,只有一行代码。由于lambda函数在定义后立即被调用,并且通常只被调用一次,所以在调用完之后它就会被垃圾回收机制回收。因此,lambda函数不适合用于需要反复调用的场景。匿名函数:造出是内存地址,且内存地址没有绑定任何名字(引用计数为0),意味匿名函数被定义完之后(调用完成一次),立马会被当作垃圾回收掉。有名函数(普通函数): 需要重复调用、使用 def关。原创 2018-07-28 21:04:51 · 1922 阅读 · 1 评论 -
python 之 shutil 文件的复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压
shutil 模块于文件和文件集合的高级操作,包括:复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压等。源文件的权限无法获取,那么 shutil.copymode() 会抛出一个 PermissionError 异常。本质上,它检查给定命令是否在环境变量中列出的任何目录中可用PATH。目标文件已存在,shutil.copymode() 会改变它的权限来匹配源文件的权限。复制文件的权限位、最后访问时间、最后修改时间和标记。不会复制文件内容,只复制文件的状态信息。和文件夹内所有的内容。原创 2023-05-20 14:16:29 · 1365 阅读 · 0 评论 -
python 之 logging的使用
console_logger 记录器只将日志消息发送到控制台,file_logger 记录器只将日志消息发送到文件。字典配置可以让你更详细地控制日志记录器、处理器、过滤器和格式化器;可以定义多个日志记录器(logger),并且为每个记录器配置不同的处理器(handler),每个记录器可以独立地设置它的日志级别和处理器。warning(告警)级别用于输出警告信息,表示可能会出现潜在的问题或异常情况,但不会影响应用程序的正常运行。info(消息)级别用于输出正常的日志消息,用于提供应用程序的运行状态信息。原创 2023-05-20 11:21:16 · 2512 阅读 · 1 评论 -
HelloGitHub我感兴趣的python项目
github地址 https://github.com/521xueweihan/HelloGitHubdoccano:一款开源的文本标记工具。它可以提供文本分类、序列标记、情感分析、文本摘等功能,帮助快速完成打标工作,支持中文和多人协作:用 Python 编写 systemd 服务的教程。许多 Linux 发行版都用 systemd 来管理系统的服务,比如开机启动、自动重启、守护进程等。原创 2023-03-12 02:17:21 · 740 阅读 · 0 评论 -
python之dataclasses
如果您需要一个简单的类来存储一些数据,例如配置信息、用户信息、数据记录等,那么使用dataclass是非常合适的。dataclass可以自动为您生成适当的属性和方法,以便您可以轻松地访问和修改数据。:如果您的代码需要处理大量的数据对象,例如在数据分析、机器学习、自然语言处理等领域中,那么使用dataclass可以使代码更加清晰易读,减少手动编写大量的属性和方法的重复性工作。它可以帮助开发者更容易地创建简单的类,同时提供了一些实用的功能,例如自动实现__init__()、field 支持的参数。原创 2023-03-08 18:32:38 · 1370 阅读 · 0 评论 -
python 之 参数校验《三》 marshmallow参数校验
2.1 marshmallow的安装pip install marshmallow2.2 字段及属性介绍。原创 2023-03-01 13:49:21 · 818 阅读 · 0 评论 -
python语音识别whisper
stable-ts在 OpenAI 的 Whisper 之上修改并添加了更大的破解代码发布,生成更准确的阶段时间切换,并在无须额外推介的情况下获得申领。是一种通用的语音识别模型。它在不同音频的大型数据集上进行训练,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。自带语言识别功能,language最好加上,下面歌曲识别为英语,加后为中文。最近想提取某个视频的文案,语音文案,研究了一波。可能是伴奏声音过大,你才出来这是什么歌了吗?模型越大,越精确,相应话费的时间越长。原创 2023-02-25 01:21:35 · 5408 阅读 · 7 评论 -
python 之 资源使用与控制 resource模块
函数首先调用 getrlimit 函数获取当前 CPU 时间的软限制和硬限制,然后将软限制设置为指定的时间,将硬限制保持不变。最后,该函数调用 signal 模块中的 signal 函数,安装一个处理超时信号 SIGXCPU 的信号处理程序,该处理程序在超时时打印一条提示信息并引发 SystemExit 异常以终止脚本。该函数首先调用 getrlimit 函数获取当前内存使用量的软限制和硬限制,然后将软限制设置为指定的大小,将硬限制保持不变。目的:我们的程序部署甲方服务器上不能阻碍其甲方服务的正常运行。原创 2023-02-15 15:20:32 · 3203 阅读 · 2 评论 -
python 基础之垃圾回收机制
二、垃圾回收分类三、python垃圾回收机制1. 引用计数 一个对象会记录自身被引用的个数2. 标记清楚:从经历过引用计数机制仍未释放的对象中,找到循环引用干掉相关对象:3. 分代回收(参考java机制):四、 java 垃圾回收机制所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。因此,可以认为年老代中存放原创 2022-12-06 14:38:39 · 504 阅读 · 0 评论 -
魔法方法《八》__bool__
class Student: def __init__(self, username, age, height): self.username = username self.age = age self.height = height def __bool__(self): return self.age >= 18if __name__ == '__main__': username, age, heig原创 2022-12-04 00:13:45 · 137 阅读 · 0 评论 -
魔法方法《七》比较操作__eq__、 __ne__、__lt__、__le__、__gt__、__ge__
在编程中我们通常需要比对两个对象、或者两个对象的某一属性是否相等, 此时会用到下面魔法方法。会根据比较运算符调用相应的魔法方法进行比较二、简单实例我们要比对两个学生的年龄是否相等、或大、或小,符合比较规则True、不符合False原创 2022-12-03 23:55:26 · 196 阅读 · 0 评论 -
python 之 __slots__应用场景、注意事项
【代码】python 之 __slots__原创 2022-11-28 21:53:49 · 319 阅读 · 0 评论 -
python 之 列表中字典的分组与合并(四种写法,总有一款适合你)
在工作中有时我们需要进行对数据进行分组,统计每组下的用户。原创 2022-08-19 19:39:48 · 4081 阅读 · 1 评论 -
位运算(位于、位或、异或、按位取反、位左移、位右移)及相应示例
位运算分为两类:逻辑位运算符位与( & )当 两位 都为1时,结果为1位移运算符左移() 负数补1,非负数补零位运算(第01题)2的幂 P2 - 00:19消除n中最低位1:n & (n-1)获取n中最低位:n & -n位运算(第04题)交换数字 P5 - 00:20交换代码a= a^b;b=a^b;a = a^b;(这是由异或的性质决定的。0^a = a; a^a = 0)位运算(第08题)子集的异或总和再求和 P9 - 00:01使用「i & (1 ......原创 2022-07-13 18:18:35 · 1507 阅读 · 0 评论 -
python 之 geopy 用法(已封装)
geopy 是抽象出一系列不同地理编码服务的API。它使您可以获得一个地方的完整街道地址,纬度,经度,甚至高度。地理编码功能时,需要借助 Geopy 的 geocoders 模块,Geopy 把所有第三方API封装到 geocoders 中......原创 2022-07-02 23:06:40 · 1589 阅读 · 0 评论 -
装饰器《二》 property - 简答逻辑
property 装饰方法的行为可以当做属性来用, 可单纯返回一些数据通过 setter 方法, 属性name 的值可以被改变, 并且在方法里做一些简单的校验原创 2022-06-20 21:36:10 · 210 阅读 · 0 评论 -
python 之 参数校验《二》 pydantic模块
from typing import Listfrom pydantic import BaseModel, Field, ValidationError, validatorclass UserModel(BaseModel): user_id: int # 必传项, 可以为int 可以str类型int username: str # 必传项, 可以为int 可以str类型int原创 2022-05-12 14:41:45 · 3651 阅读 · 0 评论 -
谷歌气球 simplekml 入门《五》
一、LookAtimport simplekmlkml = simplekml.Kml()ls = kml.newlinestring(name='A LineString')ls.coords = [(18.333868,-34.038274,10.0), (18.370618,-34.034421,10.0)]ls.extrude = 1ls.altitudemode = simplekml.AltitudeMode.relativetogroundls.lookat.gxaltitude原创 2022-05-05 15:45:13 · 436 阅读 · 0 评论 -
python 之 enumerate 高级用法
l = [4,3,6,3,7,3,7,4,7,4]list(enumerate(l))[(0, 4), (1, 3), (2, 6), (3, 3), (4, 7), (5, 3), (6, 7), (7, 4), (8, 7), (9, 4)]dict(enumerate(l)){0: 4, 1: 3, 2: 6, 3: 3, 4: 7, 5: 3, 6: 7, 7: 4, 8: 7, 9: 4}原创 2022-05-05 15:40:39 · 651 阅读 · 1 评论 -
python 单例模式基本原则、使用场景、应用示例
一、单例模式单例模式 的核心作用是确保系统中只有唯一的一个示例,并且提供一个访问该实例的全局访问点单例模式 只生成一个实例对象, 每次执行累名返回的对象内存地址相同,减少了对系统资源的开销当一个对象产生需要比较多的资源如: 读取配置文件、获取数据库连接池的链接 可以产生一个单例对象,然后永久驻留内存中,节省内存空间,从而极大的降低开销音乐播放器对象只用一个 一次只能播放一首歌曲回收站 操作系统之回收站对象只由一个,在不同的位置删除文件都会放入回收站对象打印机 打印机只有一个,10份文件需一原创 2022-01-21 19:17:00 · 2094 阅读 · 0 评论 -
魔法方法《六》__enter__和__exit__
https://www.cnblogs.com/DragonFire/p/6764066.html上下文管理器class Sample(): def __enter__(self): # 获取资源 return self def __exit__(self, exc_type, exc_val, exc_tb): # 释放资源...原创 2021-03-24 13:45:24 · 157 阅读 · 0 评论 -
pysnooper调试库,背景、示例、方法
一、背景我们在进行代码调试时,通常使用两种方式。print 输出调试的内容或者标识通过断点调试debug但是我想知道代码的中间的每一行程序运行后的结果,方便的知道每一行程序运行后的结果,而不需要再手动增加 print 展示过程数据、调试程序Python 的第三方调试库**pysnooper**。通过装饰器轻松搞定二、示例 pysnooper`pip install pysnooper示例一 跟踪整个函数import pysnooper@pysnooper.snoop()def原创 2021-02-16 17:19:17 · 131 阅读 · 0 评论 -
python基础之ConfigParser配置参数,背景、示例、方法
一、背景python 项目启动时,默认加载一个人或几个配置文件。配置文件可以不修改代码可以改变程序运行的环境、配置等。而常用的就是ConfigParser 是用来读取配置文件的包。二、应用方法配置文件的格式如下: 中括号[ ] 内包含的为section。section下面为类似于key-value 的配置内容[mysql]host = 127.0.0.1port = 3306user = rootpassword = 1qaz2wsxdb_name = games[redis]h原创 2021-02-12 22:18:41 · 384 阅读 · 0 评论 -
python 之 函数局部变量、全局变量以及全局变量经典面试题
局部变量:在一个函数内部定义变量只能在这个函数可以用,在其他函数用不了 是谓局部变量全局变量:在函数外部定义变量,在任何函数动能调用 是谓局部变量局部变量与全局变量:...原创 2020-12-18 00:57:19 · 863 阅读 · 0 评论 -
python序列化之 json、simplejson、pickle、msgpack之 dumps、loads区别于用法
一、python之Json模块1.1、json 类型特征json是一种通用的数据类型一般情况下接口返回的数据类型都是json长得像字典,形式也是k-v{ }其实json是字符串字符串不能用key、value来取值,所以要先转换为字典才可以1.2、json 简单示例s = { "noticeLoginFlag": "1", "ticket_id": "gh_45679b88e7a", "pgv_si": "s29623456176", "pgv_pvi": "13284原创 2020-12-14 14:01:32 · 729 阅读 · 0 评论 -
漫谈python浅拷贝与深拷贝
一、简单解释浅拷贝属于顶层拷贝,只拷贝最外层,里面如果有列表还是指向原来的的地址,如果子列表发生改变,拷贝的内容也发生改变深拷贝: 深拷贝属于递归拷贝,递归创建新的内存地址,原来发生改变拷贝的内容不发生改变二、简单示例浅拷贝:原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象。a与b的指向的是一个内存地址,c地址中存放着a与b的值,所以当a中元素变了,b的也跟着变了深拷贝:深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不原创 2020-12-07 20:16:28 · 105 阅读 · 0 评论 -
python 列表append、extend、insert、pop、remove、clear、reverse、sort等操作以及 列表、元祖、字典和集合的区别
追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾。默认删除最后一个数据,若指定下标则删除指定下标数据,返回被删除的数据。函数追加数据,如果数据是一个序列,追加整个序列到列表的结尾。向指定的下标位置,插入数据。排序:升序(默认) 、降序。删除第一个出现的数据。原创 2020-11-22 17:19:32 · 1268 阅读 · 0 评论 -
python 字符串切片、大小写转化、首字母大写、以什么开始结束、字符串包含类型、切割、替换、删除空白、对齐、合并、查找、删除前缀、删除后缀等
合并列表里面的字符串数据为一个大字符串(可接受填充字符)字符串合并 %s 字符串, %d数字,%f浮点。不指定时步长为1 字符串[开始索引:结束索引]截取2 - 6位置的字符(前包含,后不包含)文本字符串左边对齐(可接受填充字符)文本字符串右边对齐(可接受填充字符)文本字符串居中对齐(可接受填充字符)为开始索引到结束索引-1内的字符串。从开始位置,每隔一个字符截取字符串。从索引1开始,每隔一个取一个。字符串的逆序,隔一个取一个。判断数字或字母或组合。开始负数数,结束为负数。开始正数,结束为负数。原创 2020-11-22 16:22:11 · 1092 阅读 · 0 评论 -
python常用库之argparse 命令行参数,背景、示例、方法
一、背景通常我们启动,某个服务,服务分为dev prd 环境, 分别对应不同的端口,不同的数据库等,此时启动时名命令行启动需要输入这些参数。二、应用示例import argparseparser = argparse.ArgumentParser()parser.add_argument('--e', type=str, choices=('dev', 'prd'), help='start service flag')parser.add_argument("--port", typ原创 2020-11-14 18:42:54 · 181 阅读 · 0 评论 -
traceback用法
一、使用场景程序出现异常,如何快速定位哪里错误。业务场景简单逐个检查, 复杂的就显得low。a = 'hello world'b = 12345try: c = a + bexcept TypeError as e: print(e)输出 must be str, not int带入代码中有N个这样try,此时需要一个高效的查找工具traceback模块二、 traceback 输出完整栈信息(调用顺序、错误语句、错误类型等)import tracebacka =原创 2020-07-29 14:32:31 · 8900 阅读 · 0 评论 -
APScheduler定时任务
安装pip install apscheduler简单domefrom datetime import datetimefrom apscheduler.schedulers.blocking import BlockingSchedulerfrom utils.ding_talk import ding_talkfrom utils.setting import ORDER_R...原创 2020-03-18 19:27:38 · 887 阅读 · 0 评论 -
魔法方法《七》__getattr__
__getattr__当访问object不存在的属性时会调用__getattr__方法示例一class House(): def __init__(self, name, age): self.name = name self.age = age def __getattr__(self, item): re...原创 2020-01-15 22:06:04 · 274 阅读 · 0 评论