python
文章平均质量分 51
望长安于日下
静以修身
展开
-
数据的格式转化
2.将csv格式转化为parquet3.读取csv文件时memory errorpd.read_csv读取大文件时,如果文件太大,会出现memoryerror的问题。pd.read_csv的参数中有一个chunksize参数,为其赋值后,返回一个可迭代对象TextFileReader,对其遍历即可reader = pd.read_csv(file_path, chunksize=20) # 每次读取20条数据方法2pd.read_csv的参数中有一个iterator参数,默认为False,将其改原创 2022-07-09 21:33:14 · 917 阅读 · 0 评论 -
gerattr
getattr() 函数用于返回一个对象属性值。getattr 语法:getattr(object, name[, default])object – 对象。name – 字符串,对象属性。default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。...原创 2022-07-05 14:15:39 · 261 阅读 · 0 评论 -
str转dict
global false, null, truefalse = null = true = ''#解决eval() 不能处理false问题a = "{"1":"dd"}"if not a:#如果a为空,不能用eval returnb=eval(a)原创 2022-01-26 13:24:24 · 521 阅读 · 0 评论 -
python2安装bs4
pip install beautifulsoup4==4.3.2原创 2022-01-26 12:05:45 · 1091 阅读 · 0 评论 -
python实现编辑距离
文章目录1. 问题描述2. 代码实现1. 问题描述给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e原创 2021-06-22 13:14:00 · 160 阅读 · 0 评论 -
多线程多进程运行python任务
文章目录1.多进程2.多线程1.多进程from multiprocessing import Manager, Poolimport timeimport osimport subprocessfrom subprocess import PIPEdef throw_exception(name): print('子进程%s发生异常,进程号为%s'%(name,os.getpid())) cmd = 'taskkill /im '+ str(os.getpid())+' /F原创 2021-06-21 18:17:42 · 138 阅读 · 0 评论 -
APScheduler实现定时的任务
1. 定时框架APSchedulerAPSScheduler是python的一个定时任务框架,它提供了基于日期date、固定时间间隔interval、以及linux上的crontab类型的定时任务。该矿机不仅可以添加、删除定时任务,还可以将任务存储到数据库中、实现任务的持久化。1.1 APScheduler有四种组件:triggers(触发器):触发器包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行,除了他们自己初始化配置外,触发器完全是无状态的。job stores原创 2021-06-21 18:06:21 · 1052 阅读 · 0 评论 -
python装饰器
文章目录1. 记录程序运行次数2. 记录程序运行时间1. 记录程序运行次数import loggingcounte= 0def count(f): def wrapper(*args,**kwargs): global counte counte += 1 result = f(*args,**kwargs) logging.warning("%s processed %s times!"%(f.__name__,counte原创 2021-06-11 21:00:32 · 105 阅读 · 2 评论 -
正则化匹配时间实现定时任务执行
目录1. 正则化匹配规则1.2 举例2. 应用场景1. 正则化匹配规则在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字要匹配变长的字符,在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符^表示行的开头,^\d表示必须以数字开头。$表示行的结束,\d$表示必须以数字结束。要做更精确地匹配,可以用[]表示范围,比如:1.2 举例[0-9a-zA-原创 2021-06-10 15:13:43 · 839 阅读 · 1 评论 -
Python通过import导入不同级目录下的包
文章目录0. 序言1. 同级目录下的模块调用2. 调用子目录下的模块3. 调用上级目录下的模块0. 序言使用python进行程序编写时,经常会使用第三方模块包。这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入。不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用;为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用。本篇就针对常见的模块调原创 2021-04-24 23:47:43 · 6691 阅读 · 2 评论 -
Python3中的super()用法
文章目录1. 单继承1.1. 调用父类的方法和属性1.2. 调用方法和属性2. 多继承3. 总结1. 单继承使用super()函数在子类的init方法中对父类的init方法进行了调用,使得子类不仅可以使用父类的方法,还可以使用在父类的init方法中声明的属性。1.1. 调用父类的方法和属性without super()class A: def __init__(self): self.x="A类(父类)中的属性" def func_A(self):原创 2021-04-11 22:05:28 · 1543 阅读 · 0 评论 -
数据结构与算法--二叉树遍历系列总结
目录LeeCode题目链接:主要参考资料:代码实现这里分别给出了三种二叉树的遍历方法与N叉树的前序遍历,及其时空复杂度1:递归:直接递归版本、针对不同题目通用递归版本(包括前序、中序、后序)2:迭代:最常用版本(常用主要包括前序和层序,即【DFS和BFS】)、【前中后】序遍历通用版本(一个栈的空间)、【前中后层】序通用版本(双倍栈(队列)的空间)3:莫里斯遍历:利用线索二叉树的特性进行遍历4:N叉树的前序遍历LeeCode题目链接:二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历二原创 2021-03-02 13:34:29 · 205 阅读 · 0 评论 -
python基础--九大查找算法
1. 静态查找表(Static Search Table)只做查找操作的查找表。它的主要操作是:查询某个“特定的”数据元素是否在表中检索某个“特定的”数据元素和各种属性2. 动态查找表(Dynamic Search Table)在查找中同时进行插入或删除等操作:查找时插入数据查找时删除数据3. 顺序查找3.1. 算法简介顺序查找又称为线性查找,是一种最简单的查找方法。适用于线性表的顺序存储结构和链式存储结构。该算法的时间复杂度为O(n)。3.2. 算法描述从第一个元素m开始逐原创 2021-02-26 09:21:23 · 328 阅读 · 0 评论 -
python基础--十大排序算法
排序算法一览表1、冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢”浮“到数列的顶端。1.1、算法描述比较相邻的元素。如果第一个比第二个大,就交换他们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复原创 2021-02-25 23:34:28 · 366 阅读 · 0 评论 -
python基础--类的这些特殊方法你都知道吗?
方法列表方法说明案例__dir__列出所有的方法__init__构造方法__new__构建,实例化类__del__析构实例__str__打印相当于print__call__直接调用函数__getattr__获取参数__setattr__设置参数__getitem__sd__setitem__sd__len__sd__repr__sdobj.__dict__sd原创 2021-02-24 16:34:09 · 83 阅读 · 0 评论 -
python基础--类竟然还可以这样创建!
传统类的创建'''单示例模式的类'''class MySingleton: __obj = None __init_flag = True def __new__(cls, *args, **kwargs): if cls.__obj == None: cls.__obj = object.__new__(cls) return cls.__obj def __init__(self,name): .原创 2021-02-24 11:10:24 · 146 阅读 · 0 评论 -
python基础--你知道类的私有属性吗?
Python 对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:1、通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。2、类内部可以访问私有属性(方法)3、类外部不能直接访问私有属性(方法)4、类外部可以通过“_类名__私有属性(方法)名”访问私有属性(方法)# -*- coding: utf-8 -*-"""Created on Tue Feb 23 09:01:26 2021@autho.原创 2021-02-23 23:13:56 · 668 阅读 · 0 评论 -
yield与return的区别
yield是用于生成器。什么是生成器,你可以通俗的认为,在一个函数中,使用了yield来代替return的位置的函数,就是生成器。它不同于函数的使用方法是:函数使用return来进行返回值,每调用一次,返回一个新加工好的数据返回给你;yield不同,它会在调用生成器的时候,把数据生成object,然后当你需要用的时候,要用next()方法来取,同时不可逆。你可以通俗的叫它"轮转容器",可用现实的一种实物来理解:水车,先yield来装入数据、产出generator object、使用next()来释放;好比水原创 2020-11-15 08:36:56 · 5671 阅读 · 0 评论 -
加密算法
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的...原创 2020-02-21 15:02:08 · 205 阅读 · 0 评论 -
生命周期
Python生命周期主要就是3个方法,首先创建对象的时候,会执行__new__方法,当对象创建成功时会调用__init__这个初始化方法,当对象被回收的时候会调用__del__方法,我们主要就是通过这3个方法来监控对象的生命周期。关于python的相关知识Docker生命周期彩色圆形 代表容器的五种状态:created:初建状态running:运行状态stopped:停止状态p...原创 2019-11-13 09:05:20 · 118 阅读 · 0 评论 -
深拷贝和浅拷贝区别
深拷贝和浅拷贝区别import copyn1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}n2 = copy.copy(n1)print("befor:\n n1:%s\n n2:%s \n n1id:%s\n n2id:%s \n"%(n1,n2,id(n1),id(n2)))n1['k3'].append(12)print("a...原创 2019-11-08 17:43:35 · 451 阅读 · 0 评论 -
python并发编程之多进程、多线程、异步、协程、通信队列Queue和池Pool的实现和应用
python并发编程之多进程、多线程、异步、协程、通信队列Queue和池Pool的实现和应用什么是多任务?简单地说,就是操作系统可以同时运行多个任务。实现多任务有多种方式,线程、进程、协程。并行和并发的区别?并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)并行:指的是任...原创 2019-11-08 09:56:12 · 528 阅读 · 0 评论 -
Python推导式(列表推导式、字典推导式、集合推导式、lambda推导式)
temp=[lambda x: i * x for i in range(3)]print([m(1) for m in temp])首先解析这个函数:temp是个列表,内部自变量为i,由内部函数传入,外部参数为x,由外部调用输入,i in range(3)有三个元素,所以列表中有三个元素,但是i只能取值3,所以temp=[(lambda x : i*x),(lambda x : i*x)...原创 2019-10-30 16:31:11 · 485 阅读 · 0 评论 -
Python不换行输出
#初始化字符串和数字的简单列表:strlist=['a','b','c','d'] intlist=[1,2,3,4]#输出strlistprint(''.join(strlist)) #不换行输出abcdfor i in strlist:print(i,end='') #不换行输出abcdprint() for i in strlist:print(i) #换行输出abcd #...原创 2019-04-10 20:31:14 · 2442 阅读 · 0 评论 -
python字符串/元组/列表/字典互转
python字符串str-元组tup-列表list-字典dict互转原创 2017-11-05 22:18:52 · 159 阅读 · 0 评论 -
装饰器
装饰器函数的执行顺序是分为(被装饰函数)定义阶段和(被装饰函数)执行阶段的,装饰器函数在被装饰函数定义好后立即执行在函数定义阶段:执行顺序是从最靠近函数的装饰器开始,自内而外的执行在函数执行阶段:执行顺序由外而内,一层层执行def war1(func): print("war1") def inner(*args, **kwargs): print("==...原创 2019-09-05 18:36:12 · 108 阅读 · 0 评论 -
Python表示承接(隔空取物)的几种方法
1、exec隔空取物touch 1111#创建文件find . -name "1111" -exec rm {} \; #删除找到的文件,{}表示承接固定格式\;不能少。可以放中间执行放中间find . -name "1111" -exec cp {} 3333 \; #会复制1111副本改名为3333docker exec 容器ID ls -l #先进入容器ID,然后执行l...原创 2019-09-05 17:25:36 · 443 阅读 · 0 评论 -
python列表推导式
1、列表生成式则可以用一行语句生成list>>> [x * x for x in range(1, 11) if x % 2 == 0][4, 16, 36, 64, 100]2、还可以使用两层循环,可以生成全排列:>>> [m + n for m in 'ABC' for n in 'XYZ']['AX', 'AY', 'AZ', 'BX', 'B...翻译 2019-07-14 14:19:19 · 139 阅读 · 0 评论