Python
文章平均质量分 52
欧晨eli
达·芬奇说:“理论脱离实践是最大的不幸,实践应以好的理论为基础。”
展开
-
python 执行shell 并输出
【代码】python 执行shell 并输出。原创 2023-02-15 14:30:10 · 865 阅读 · 0 评论 -
Anaconda 阿里镜像
Anaconda是一个用于科学计算的Python发行版,支持Linux, Mac, Windows,包含了众多流行的科学计算、数据分析的Python包。转载 2023-02-13 15:24:05 · 539 阅读 · 0 评论 -
python 动态导入模块和类
【代码】python 动态导入模块和类。原创 2023-01-04 10:30:12 · 341 阅读 · 0 评论 -
【PEP 484】.pyi文件
在PyCharm中查看源代码的时候,发现有些代码行有星号(*)标识,鼠标移上去会提示在某个.pyi文件中有其存根程序,点击星号会跳转到对应的存根程序处。 那什么是存根程序呢?我第一次看到这个概念是在软件工程的书里,它主要就是用来做集成测试的。比如下图中M是实际开发出来的模块,S就是存根程序(一个临时文件,用来模拟实际的模块,向要测试的模块发送它们需要的消息)。这样的好处就是可以逐步完成整个大项目的测试。 那么在我这个例子的Python源码中,.pyi存根文件起到了什么作用呢?在网上查询的时候,有人推荐了PE转载 2022-12-05 15:40:45 · 678 阅读 · 1 评论 -
Python编程:subprocess执行命令行命令
Python,subprocess执行命令行命令转载 2022-12-02 15:12:45 · 2494 阅读 · 0 评论 -
python 参数 / 和 *
如果是这种情况下调用函数,参数a可以任意值,但参数b一定要以关键字参数的形式传参,如f2(2, b=3),但是如果想传入c参数,那么c参数的要求和b参数一样都为关键字参数形式,如f2(2,b=3,c=4)。对于上面这个函数而言,调用f1时参数a,b只能是特定的值,而不能以关键字传参,即f1(2, 3)执行正确而f1(a=2, 3)和f1(2, b=3)将执行错误。对于上面这个函数而言,调用时参数a可以任意值, 但b,c参数一定要以关键字参数的形式传参,如f1(1, b=4, c=5),否则将会报错。原创 2022-10-27 11:08:48 · 1001 阅读 · 0 评论 -
python 线程池与队列简单应用
【代码】python 线程池与队列简单应用。原创 2022-10-21 15:50:54 · 1138 阅读 · 0 评论 -
Python线程池及其原理和使用(超级详细)
系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。在这种情形下,使用线程池可以很好地提升性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。线程池在系统启动时即创建大量空闲的线程,程序只要将一个函数提交给线程池,线程池就会启动一个空闲的线程来执行它。当该函数执行结束后,该线程并不会死亡,而是再次返回到线程池中变成空闲状态,等待执行下一个函数。此外,使用线程池可以有效地控制系统中并发线程的数量。转载 2022-10-21 15:01:08 · 643 阅读 · 0 评论 -
dis -- Python 字节码反汇编器
模块通过反汇编支持CPython的分析。该模块作为输入的 CPython 字节码在文件中定义,并由编译器和解释器使用。字节码是 CPython 解释器的实现细节。不保证不会在Python版本之间添加、删除或更改字节码。不应考虑将此模块的跨 Python VM 或 Python 版本的使用。在 3.6 版更改: 每条指令使用2个字节。以前字节数因指令而异。示例:给出函数myfunc():可以使用以下命令显示myfunc()的反汇编>>>("2" 是行号)。转载 2022-09-20 10:54:52 · 1006 阅读 · 0 评论 -
json 数据展平pd.json_normalize
将半结构化JSON数据规范化为平面表。原创 2022-07-01 15:00:38 · 5714 阅读 · 2 评论 -
python 安装包
python 各种方式安装包原创 2022-06-23 17:27:44 · 384 阅读 · 0 评论 -
tensorflow,pytorch,paddle 测试GPU是否可用
tensorflow,pytorch,paddle 测试GPU是否可用原创 2022-06-07 16:59:54 · 2543 阅读 · 0 评论 -
cpu和内存监控脚本
#!/bin/python3# -*- coding: utf-8 -*-"""使用方式:python3 cpu_monitor.py 1 0.7python3 cpu_monitor.py 5 0.7python3 cpu_monitor.py 15 0.71 5 15分别表示负载1分钟内,5分钟内,15分钟内统计.只有这三个选择0.7是计算峰值,可以随意修改。超过峰值,会打印告警,并且打印cpu占比前十的进程"""import sysimport osimport loggin.原创 2022-03-24 13:48:17 · 719 阅读 · 0 评论 -
Python 获取路径相关的代码
在 运行,调试,打包成exe 三个不同场景下获取跟路径,用于解决获取资源文件绝对路径问题。工具类代码如下:import sysimport osfrom functools import wrapsclass ABSPath(object): """路径处理工具类""" @classmethod def project_asbpath(self): """获取当前项目目录""" project_asbpath = sys.path[原创 2022-03-23 11:24:09 · 806 阅读 · 0 评论 -
TimedRotatingFileHandler,日志无法按天分割
TimedRotatingFileHandler类的重点就在于log_file_handler = TimedRotatingFileHandler(filename=LOG_PATH+"thread_", when="D", interval=1, backupCount=7)这个初始化方法。filename是日志名,when是间隔时间单位,interval是间隔时间数值,backupCount是要保留几个分割后的日志文件。 我当时想要配的是每天的日志都分开来打吧,于是便设置了when="D"...转载 2022-03-16 10:50:07 · 2686 阅读 · 1 评论 -
Python-pandas的dropna()方法-丢弃含空值的行、列
Python-pandas的dropna()方法-丢弃含空值的行、列转载 2022-03-15 19:02:01 · 14354 阅读 · 0 评论 -
导出mongo数据到文件,多层展开
导出mongo数据到文件,嵌套展开原创 2022-03-14 15:25:30 · 498 阅读 · 0 评论 -
logging切割日志
import loggingfrom logging.handlers import TimedRotatingFileHandlerlog_file_name = "./hello.log" # log输出文件名称formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # 定义日志输出格式(formatter)logger = logging.getLogger('mylogger') # 创建.原创 2022-03-09 13:39:41 · 403 阅读 · 0 评论 -
超详细的 PyCharm 教程
本文假设读者熟悉 Python 开发,且计算机中已安装某个版本的 Python。该教程将使用 Python 3.6 版本,屏幕截图和 demo 均来自 macOS 系统。由于 PyCharm 可在所有主流平台上运行,读者在其他系统中会看到略微不同的 UI 元素,可能需要调整某些命令。1. PyCharm 的安装本文将使用 PyCharm Community Edition 2019.1 版本,该版本免费且可在所有主流平台上使用。只有最后一部分「PyCharm Professional 功能」使用的是转载 2022-02-14 15:12:20 · 4430 阅读 · 0 评论 -
selenium报错:Message: stale element reference: element is not attached to the page document
原因:因为selenium是在当前页面中寻找元素如果,你加载了新的页面那么,原来分析出来的元素就找不到了!!!解决方案:不要保存页面元素直接将最终解析结果保存下来.或者,在页面元素解析过程中不要打开新的页面...原创 2022-01-12 15:49:13 · 1328 阅读 · 0 评论 -
selenium+xpath获取href的坑
先上HTML文档<html> <body> <a href="http://www.example.com">Example</a> <a href="http://www.stackoverflow.com">SO</a> </body></html>正常情况下的xpth获取href使用下面代码就行/html/body//a/@href结果selenium报错原创 2022-01-12 14:57:45 · 1859 阅读 · 0 评论 -
pyqt任务栏图标显示问题
今天在运行一个pyqt程序的时候发现setWindowIcon这个函数起了一半的作用,学Qt的都知道这个函数同时设置了程序的两个地方的图标显示,第一处在程序的左上角一个小图标(只实用于window和linux,mac没有的),第二处就是任务栏的图标,如下图:在使用pyqt的时候你发现只有第一处设置成功了,而第二处则显示的是pythonw.exe的图标,谷歌找了一下,解决了,下面就是详细描述,英文稍差一点的同学就直接看解决方法吧,话说博主的英文也是烂的一塌糊涂I've found the an转载 2022-01-07 17:48:02 · 1131 阅读 · 0 评论 -
pymongo统计字段是否存在的记录
pymongo查询字段存在或者不存在使用正则或者exsitsm = db[collName].find({"s": None}).count()n = db[collName].find({"s": {'$regex': ".*"}}).count()k = db[collName].find({"si": None}).count()z = db[collName].find({"si": {'$exists': True}}).count()"""测试mongo数据库是否存在某些字原创 2022-01-06 15:37:42 · 1586 阅读 · 0 评论 -
导出mongo [带嵌套list] 的数据,展开.
"""读取文件,导出mongo [带嵌套list] 的数据,展开.问题描述:形如这样的数据,展开:old数据:{"_id":123,"class":"good","queslist":[{"_id":123,"name":"yyl"},{"_id":124,"name":"eli"},{"_id":125,"name":"coin"}]}new数据格式:{"_id":123,"class":"good","queslist___id":123,"queslist_name":"yyl"}{.原创 2022-01-06 12:39:45 · 807 阅读 · 0 评论 -
dataframe 使用小结
import pandas as pddf=pd.DataFrame()"""@1dataFrame转换数据类型# select_dtypes ,选择bool类型的列"""for col in df.select_dtypes(include=['bool', 'int', 'int64', 'float']).columns: # 其他类型转换为str df[col] = "'" + df[col].astype(str) + "'"for col in df.select_..原创 2022-01-06 12:33:10 · 909 阅读 · 0 评论 -
将pandas DataFrame列展开为多行
"""问题描述:将pandas DataFrame列展开为多行如果我有这样一个DataFrame:pd.DataFrame( {"name" : "John", "days" : [[1, 3, 5, 7]] })给出了这种结构: days name0 [1, 3, 5, 7] John如何将其扩展到以下内容? days name0 1 John1 3 John2 .原创 2022-01-05 14:29:38 · 1929 阅读 · 1 评论 -
Python 使用 __getstate__ 和 __setstate__ 魔法方法
__getstate__ 与 __setstate__ 两个魔法方法分别用于Python 对象的序列化与反序列化在序列化时, _getstate__ 可以指定将那些信息记录下来, 而 __setstate__ 指明如何利用已记录的信息先创建一个基类class Demo: def __init__(self, name, age=0): self.name = name self.age = age def __str__(self):转载 2022-01-05 09:50:17 · 1273 阅读 · 0 评论 -
python访问属性时调用的内置函数__getattribute__
python中__getattr__和__getattribute__区别转载 2022-01-05 09:49:57 · 1416 阅读 · 0 评论 -
Python - typing 模块 —— Optional
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:Python -类型提示 Type Hints - 小菠萝测试笔记 - 博客园常用类型提示Python - typing 模块 —— 常用类型提示 - 小菠萝测试笔记 - 博客园类型别名https://www.cnblogs.com/poloyy/p/15153883.htmlNewTypePython - typing 模块 —— NewType - 小菠萝测试笔记.转载 2022-01-05 09:50:05 · 2840 阅读 · 0 评论 -
Python - typing 模块 —— Union
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:Python -类型提示 Type Hints - 小菠萝测试笔记 - 博客园常用类型提示Python - typing 模块 —— 常用类型提示 - 小菠萝测试笔记 - 博客园类型别名https://www.cnblogs.com/poloyy/p/15153883.htmlNewTypePython - typing 模块 —— NewType - 小菠萝测试笔记.转载 2022-01-05 09:49:39 · 1496 阅读 · 0 评论 -
Python - typing 模块 —— Any Type
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:Python -类型提示 Type Hints - 小菠萝测试笔记 - 博客园常用类型提示Python - typing 模块 —— 常用类型提示 - 小菠萝测试笔记 - 博客园类型别名https://www.cnblogs.com/poloyy/p/15153883.htmlNewTypePython - typing 模块 —— NewType - 小菠萝测试笔记.转载 2022-01-04 14:34:07 · 595 阅读 · 0 评论 -
Python - typing 模块 —— TypeVar 泛型
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:Python -类型提示 Type Hints - 小菠萝测试笔记 - 博客园常用类型提示Python - typing 模块 —— 常用类型提示 - 小菠萝测试笔记 - 博客园类型别名https://www.cnblogs.com/poloyy/p/15153883.htmlNewTypePython - typing 模块 —— NewType - 小菠萝测试笔记.转载 2022-01-04 14:32:54 · 4132 阅读 · 0 评论 -
Python - typing 模块 —— Callable
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:Python -类型提示 Type Hints - 小菠萝测试笔记 - 博客园常用类型提示Python - typing 模块 —— 常用类型提示 - 小菠萝测试笔记 - 博客园类型别名https://www.cnblogs.com/poloyy/p/15153883.htmlNewTypePython - typing 模块 —— NewType - 小菠萝测试笔记.转载 2022-01-04 14:30:21 · 992 阅读 · 0 评论 -
Python - typing 模块 —— NewType _
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:Python -类型提示 Type Hints - 小菠萝测试笔记 - 博客园常用类型提示Python - typing 模块 —— 常用类型提示 - 小菠萝测试笔记 - 博客园类型别名https://www.cnblogs.com/poloyy/p/15153883.htmlNewType可以自定义创一个新类型主要用于类型检查 NewType(name, tp.转载 2022-01-04 14:27:28 · 326 阅读 · 0 评论 -
Python - typing 模块 —— 类型别名
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:https://eli-coin.blog.csdn.net/article/details/122301840常用类型提示:https://eli-coin.blog.csdn.net/article/details/122301949类型别名可以将复杂一点类型给个别名,这样好用一些变量栗子# 别名vector = List[float]var: ve转载 2022-01-04 14:24:22 · 963 阅读 · 0 评论 -
Python - typing 模块 —— 常用类型提示
前言typing 是在 python 3.5 才有的模块前置学习Python 类型提示:https://eli-coin.blog.csdn.net/article/details/122301840https://eli-coin.blog.csdn.net/article/details/122301840常用类型提示int,long,float:整型,长整形,浮点型; bool,str:布尔型,字符串类型; List, Tuple, Dict, Set:列表,元组,..转载 2022-01-04 14:21:30 · 1979 阅读 · 0 评论 -
Python - typing模块 类型提示 Type Hints
为什么会有类型提示Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,运行时不需要指定变量类型 但是与此同时 IDE 无法像静态类型语言那样分析代码,及时给我们相应的提示,比如字符串的 split 方法def split_str(s): strs = s.split(",")由于不知道参数 s 是什么类型,所以当你敲s. 的时候不会出现 split 的语法提示解决上述问题,类型提示Python 3.5、3.6 新增了两个特性 PEP 484 和 ...转载 2022-01-04 14:11:18 · 1148 阅读 · 0 评论 -
阅读Faker源码时遇到的奇怪代码
from typing import Any, Callable, Dict, Hashable, List, Optional, Pattern, Sequence, Tuple, Unionclass Faker: """Proxy class capable of supporting multiple locales""" # 代理类,支持多个地区(语言环境) cache_pattern: Pattern = re.compile(r"^_cached_\w*_mapp.原创 2022-01-04 13:50:04 · 1153 阅读 · 0 评论 -
python模块typing的作用
一、介绍Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,typing模块可以很好的解决这个问题typing模块的作用:自python3.5开始,PEP484为python引入了类型注解(type hints)类型检查,防止运行时出现参数和返回值类型不符合。 作为开发文档附加说明,..转载 2022-01-04 13:40:40 · 311 阅读 · 0 评论 -
Python中的闭包
1 嵌套函数中的非局部变量在了解什么是闭包之前,必须首先理解什么是嵌套函数和非局部变量。在另一个函数中定义的函数称为嵌套函数。嵌套函数可以访问外围作用域的变量。在 Python 中,这些非局部变量默认情况下是只读的,为了修改它们,必须显式地将它们声明为非局部变量(使用 non-local 关键字)。下面是一个嵌套函数访问非局部变量的示例。defprint_msg(msg):#Thisistheouterenclosingfunctiondefpri...转载 2022-01-04 10:59:41 · 159 阅读 · 0 评论