
Python
文章平均质量分 70
atwdy
大数据开发、数据挖掘
展开
-
正则表达式梳理(基于python)
正则表达式(regular expression)是一种针对字符串匹配查找所定义的规则模式,独立于语言,但不同语言在实现上也会存在一些细微差别,下面基于python对常用的相关内容进行梳理。原创 2025-03-05 19:52:59 · 1193 阅读 · 0 评论 -
【python】协程(coroutine)
coroutine/task/future都是可await获取执行结果的,但await coroutine并不会创建task,会挂起同步等待await的协程执行完再回到当前协程继续执行,而await task/future时,会异步等待task完成。注意这里的执行指的是占用CPU计算,不包括等待阻塞等场景。1)直接await coroutine时,阻塞执行,两个协程各自sleep 1s,共用时2s+2)await task时,非阻塞执行,两个task各自sleep 1s,共用时1s+原创 2025-02-21 16:57:07 · 980 阅读 · 0 评论 -
【python】参数解析
python中实现参数解析主要有两种方式,argparsesys.argv,前者适合复杂场景,后者适合简单场景。原创 2025-02-12 13:22:36 · 292 阅读 · 0 评论 -
【python】http.server内置库构建临时文件服务
需要从linux开发机上下载一个文件到本地,约700M比较大,通过sz命令下载较慢且传输过程不稳定连续失败,后采用下面方式解决。cd到一个目录下执行,port为服务的端口号:启动后浏览器中访问服务地址,从这里可以直接查看目录下所有的文件&下载。下面是服务的参数源码:-b绑定服务监听的ip地址,默认值0.0.0.0公网所有ip都可以访问,127.0.0.1只能本机访问,该参数不用调整。-d设置哪个目录作为根目录,默认值执行命令时的当前所在目录。port。原创 2025-02-11 19:57:09 · 435 阅读 · 0 评论 -
【python】unittest单元测试
如果指定模块,会测试模块中所有测试类的全部方法。(命令执行目录下需要能搜索到指定模块,注意模块名不包含.py)所以这种方式启动的话,建议脚本中只写一个测试类,且类中只写一个测试方法,所有的测试逻辑都放在该方法里。下面是根据文档写的一个demo,主要的内容基本都包含了,使用时导入自己的业务类测试类中的方法就行。(如果一个脚本中有多个测试类、一个测试类中有多个测试方法的话)。这种方式可以直接指定模块、具体的测试类及测试方法等。原创 2024-12-31 16:55:09 · 542 阅读 · 0 评论 -
【python】is、== 两种比较方式的区别
比较的是对象的值时,这里的对象其实仅指的是python中自带的一些可变容器类型,比如列表。因为这些容器类型源码中已经预实现了。这种理解也没错,但是需要注意一个前提,当说。如果对象的类或父类中没有实现这个魔术方法,比较运算符时,其实调用的就是这个方法。相同,比较的还是对象的内存地址。方法,当在python中使用。原创 2024-12-20 20:17:42 · 223 阅读 · 0 评论 -
【python】os.fork进程创建
在类unix系统中,fork系统调用一般采用了写时复制(Copy on Write)技术,fork出来的子进程会复制一份父进程的内存页表作为自己的内存页表,因为页表项中虚拟内存页指向的实际物理内存页还是原来的,所以进程间内存也是共享的。fork,叉子、分叉的意思。注意这个返回的值跟os.getpid()返回的pid含义不同,os.getpid()返回的是当前进程的进程号,而fork调用返回的值更像是一个进程内部的标识变量,只不过这个变量的值在父进程中定义为子进程的进程号(便于控制子进程)。原创 2024-10-30 20:23:26 · 1022 阅读 · 0 评论 -
【python】logging日志模块使用快速入门
1-5日志级别由低到高,日志级别的设定是一个阈值,设定为某个级别后,这个级别及以上级别的日志才会被记录。比如设定为INFO,那么INFO、WARNING、ERROR、CRITICAL的日志会被记录,DEBUG级别的日志不会被记录。NOSET特殊一些,不属于日志级别的定义,表示不设置级别,继承父记录器的日志级别。logging模块默认将日志输出到标准错误流(sys.stderr),与日志级别设置无关。日志属于程序调试信息,与正常输出理应隔离,不影响正常输出,所以也可以理解为什么这样设计。原创 2024-10-28 16:44:08 · 874 阅读 · 0 评论 -
【python】循环&异常处理中else的用法
看代码时发现的一种写法,学习一下。原创 2024-06-13 11:01:08 · 488 阅读 · 0 评论 -
python查看第三方包模块文档的两种方式
本机会随机生成一个端口号(也可以指定端口号,注意端口冲突),输入b直接打开,或者复制地址浏览器中打开查看。ctrl+f 要查询的模块名。原创 2023-04-02 00:37:26 · 2226 阅读 · 0 评论 -
【python】变量作用域&LEGB规则&global/nonlocal关键字
global用于声明一个非全局变量为全局变量,全局变量在函数内部只可引用不能修改,如果修改也就是出现"="赋值运算,则相当于在函数内部新建了一个与全局变量同名的局部变量,此时引用必须在定义之后,否则会找不到改局部变量而报错。nonlocal修饰的变量在Enclosed作用域之间必须存在,可以越级,系统会从Enclosed作用域中由内往外,引入离局部作用域最近的那个同名变量,EEnclosed,局部作用域与全局作用域之间的作用域,例如函数嵌套中的外层函数的作用域。BBuiltin,内置变量的作用域。...原创 2022-07-28 17:57:26 · 517 阅读 · 0 评论 -
pandas中iloc与loc的使用
用的时候有些模糊,查下资料彻底搞清一下。官方文档上一个示例的DataFrame,直接拿过来,下面都针对这个DataFrame操作,其中0 1 2叫做行标签,a b c d叫做列标签,有一点需要注意,如果没有显式指定行标签,则会自动用行号作为它的行标签,关于什么是行号和行标签,行号就是从0开始编号的整数,可以理解为数组下标,行标签只是一个用来标识行的不重复的唯一标识,可以理解为K-V结构中的K。无论指没指定行标签,行号都是隐式存在的,列标签和列号也同理。iloc属性官方文档地址:https://panda原创 2022-07-07 10:50:22 · 797 阅读 · 0 评论 -
Python中json模块的使用
标准jsonpython中json模块的使用标准jsonjson(javascript object notation,js对象标记法),是js对象的字符串表示形式。包含两种数据结构:1.对象 2.数组对象使用 { } 包裹,里面是无序的 K/V 键值对,键值之间 : 分割,键值对之间 , 分割。键只能为双引号包裹的字符串类型,值可以为4种基本数据类型(字符串型/数值型/布尔型/null)和2中引用数据类型(对象/数组),值为字符串型的时候也必须使用双引号包裹。数组使用 [.原创 2022-05-10 15:28:07 · 1583 阅读 · 0 评论 -
Python中的包与模块
模块模块python中的一个模块可以简单的理解成一个py文件,在导入自定义模块时模块的查找顺序可以通过sys.path输出查看:import sysprint(sys.path)我电脑上的路径:[‘D:\Pycharm\workspace\PracticePro\pack1’,‘D:\Pycharm\workspace\PracticePro’,‘C:\Users\Lenovo\AppData\Local\Programs\Python\Python36\python36.zip’,.原创 2022-05-07 18:13:33 · 884 阅读 · 0 评论 -
Python带附件邮件发送的简易实现
动手之前需要开启一下SMTP服务,以qq邮箱为例,关于java版的可以查看https://blog.youkuaiyun.com/atwdy/article/details/119269369下面是python代码:import smtplibfrom email.mime.application import MIMEApplicationfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMEText原创 2022-04-21 17:17:02 · 2234 阅读 · 0 评论 -
Python装饰器与闭包
1. python装饰器的一个简单实例实现2. python中装饰器的实现原理3. 装饰带有不定长参数和返回值的函数实例4. 拓展:闭包说到python中的装饰器,很容易联想到设计模式中有个模式叫做装饰器模式,设计模式中的那个装饰器模式的本质其实就是装饰器类和被装饰类实现共同的接口,装饰器类中持有被装饰类的对象并且覆写被装饰类中的方法,覆写的方法中一边通过被装饰类的对象调用该对象自己的方法,一边自定义自己的装饰。python中的装饰器和上面的思想也是类似的。1. python装饰器的一个简单实例实现.原创 2022-04-20 19:35:20 · 671 阅读 · 0 评论