python
文章平均质量分 65
大帅不是我
你的坚持,终将美好。
展开
-
python的并发、异步编程总结
使用python并发执行任务首先想到的是使用多线程和多进程,或者是协程asyncio,本篇文章做一下使用的总结。使用场景说明一下:多进程:适用于计算密集型的任务,比如要进行大量的运算,或者多cpu计算依赖较多的任务 多线程:适用于IO密集型的任务,比如说网络请求、文件读写这些比较耗时的任务。 asyncio:同多线程,因为asycnio本质上是在单线程中执行的。 在使用线程池/进程池的时候,往往需要设置池的数量,一般默认情况是cpu的核数,可以使用os.cpu_count()获取1. 多进程原创 2022-05-01 17:11:01 · 2550 阅读 · 0 评论 -
python使用selenium实现页面自动化
简介Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,可以模仿用户的一些正常操作,还可以获取到网页的数据。安装pip3 install selenium安装谷歌浏览器驱动在谷歌的浏览器中输入chrome://version/可以查看自己当前使用的浏览器版本号:打开地址,找到跟自己浏览器同一版本的驱动进行下载:浏览器驱动地址我这里没找到完全匹配的版本号,就取96.0.4664.45也行的下载解压后,放在自己...原创 2022-03-06 22:57:02 · 1836 阅读 · 0 评论 -
Python处理僵尸进程
os.waitpid、僵尸进程、python、signal原创 2022-01-28 00:02:47 · 5303 阅读 · 0 评论 -
python读取txt文件内容写入到excel表格中
import xlwtimport osclass TxtToExcel(object): def __init__(self, path): self.path = path self.workbook = xlwt.Workbook() self.worksheet = self.workbook.add_sheet('mybook', cell_overwrite_ok=True) def read_content(self,.原创 2021-12-25 20:48:59 · 5654 阅读 · 0 评论 -
FATAL: The knotty ui could not load the required curses python module.
使用yocto工程执行命令:bitbake core-image-minimal遇到如下错误:FATAL: The knotty ui could not load the required curses python module.解决方案:安装bpython,会自动安装curses这个库,如果直接pip3 install curses是安装不了的pip3 install bpython...原创 2021-11-14 11:20:25 · 2008 阅读 · 0 评论 -
Python 内置函数详解,进阶必备
python版本3.6.2 ,python一共提供了68个内置函数,具体如下abs() dict() help() min() setattr()all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii()原创 2021-10-13 15:44:57 · 205 阅读 · 0 评论 -
Django项目中使用Celery
本篇文章是celery分布式任务队列从入门到精通_大帅的博客-CSDN博客中的一个章节,其中celery的安装部署不再阐述,默认读者有django和celery的基础。1. 简单的django项结构如下:其中只定义了两个路由,taskA和taskB,在 view中实现了两个简单的方法url.py路由部分如下:urlpatterns = [ path('admin/', admin.site.urls), path('taskA'...原创 2021-09-12 15:36:59 · 895 阅读 · 1 评论 -
celery分布式任务队列从入门到精通
1. Celery简介 Celery是由纯python编写的,但是协议可以用任何语言实现。目前,已有Ruby实现的RCelery、Node.js实现的node-celery及一个PHP客户端,语言互通也可以通过using webhooks实现。在使用Celery之前,我们先来了解以下几个概念: 任务队列:简单来说,任务队列就是存放着任务的队列,客户端将要执行的任务的消息放入任务队列中,执行节点worker进行持续监视队列,如果有新任务,就取出来执行该任务。这种机制就像生产者消、费者模型一...原创 2021-09-10 22:56:20 · 1744 阅读 · 3 评论 -
Python timeit模块
timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)参数:Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置;timer参数是一个定时器函数,与平台有关。timeit.Timer....原创 2021-08-20 16:08:40 · 244 阅读 · 0 评论 -
python容器数据类型 --- collections 详解
collections 是python3中的一个标准库,提供了9种容器用来解决特定的问题 namedtuple() 创建命名元组子类的工厂函数 deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop) ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面 Counter 字典的子类,提供了可哈原创 2021-08-18 14:04:32 · 519 阅读 · 0 评论 -
Nginx从入门到进阶
1. Nginx简介Nginx(发音同 engine x)是一款基于异步框架的轻量级/高性能的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·赛索耶夫)所开发,最初供俄国大型网站Rambler.ru及搜寻引擎Rambler使用。Nginx特点 优点:高并发量:基于 epoll/kqueue 模型开发,支持高并发量,官方说...原创 2021-08-06 20:18:46 · 778 阅读 · 0 评论 -
Django框架总结,从创建项目到部署。
1. Django 简介Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。django3.2版本:官方文档2..原创 2021-06-16 21:38:40 · 272 阅读 · 0 评论 -
启动django项目报错:ModuleNotFoundError: No module named ‘_sqlite3‘
环境:CentOS-7.6-x86 Python3.8.2CentOS-7.6-x86是刚安装完的虚拟机,python3.8.2是从官网下载编译安装的,在使用命令python3 manage.py 0.0.0.0:8000启动服务时,发生报错,如下:按照网上的教程:安装sqlite-devel后,重新编译python3,又提示版本太低,如下:以下是正确流程(折腾了1个小时的总结):1. 安装sqlite3-develyum -y install sqlite-devel原创 2021-06-14 17:15:04 · 6857 阅读 · 5 评论 -
Python日志库logging总结-可能是目前为止将logging库总结的最好的一篇文章
Python的longing模块就是为了记录日志使用的,而且是线程安全的,以为着使用它完全不用担心因日志模块的异常导致程序崩溃。1. logging模块的简单使用import logginglogging.basicConfig( level=logging.DEBUG, format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s", # 日志的格式 datefmt=" %Y-%转载 2021-06-13 11:50:05 · 818 阅读 · 1 评论 -
python-yaml文件读取的高级封装
如下是对yaml解析器的高级封装,使用了面向对象的思想。demo.yaml文件中的内容:test: a: b: dashuai封装代码import yamlclass YamlOperation(dict): def __init__(self, file_path=None, content=None): super().__init__() if file_path is not None: wi.原创 2021-06-06 13:59:20 · 662 阅读 · 0 评论 -
Python装饰器和闭包
1. 闭包闭包的构成条件:存在函数嵌套(函数内部还定义一个函数) 内部函数使用了外部函数的变量(还包括外部函数的参数) 外部函数返回了内部函数闭包的作用:闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁。可以提高代码的可重用性。简单闭包的示例代码:# 定义一个外部函数def func_out(num1): # 定义一个内部函数 def func_inner(num2): # 内部函数使用了外部函数的变量(num1) resu原创 2021-06-01 22:45:29 · 180 阅读 · 0 评论 -
创建python虚拟环境管理工具-virtualenvwrapper
1. 安装pip3 install virtualenvwrapper2. 配置环境# 创建目录用来存放虚拟环境mkdir ~/.virtualenvs# 打开 ~/.bashrc文件,添加如下内容export WORKON_HOME=~/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/vir原创 2021-05-29 14:28:58 · 152 阅读 · 0 评论 -
python 特殊方法和特殊属性详解
python魔法方法的官方文档:官方地址原创 2021-05-19 22:41:15 · 498 阅读 · 0 评论 -
python执行外部命令subprocess模块的使用
subprocess模块是python自带的模块,它主要用来去掉一些旧的模块或方法,如os.system、os.spawn*、commands.*、os.popen*等,因此如果需要python执行外部命令或任务时,则优先使用subprocess模块。1.Popen类先来看下Popen类的构造参数(此处只列出常用的几个参数而已):def __init__(self, args, stdin=None, stdout原创 2021-05-10 22:14:00 · 726 阅读 · 0 评论 -
python协程greenlet和gevent的用法
greenlet是python中实现协程的一个模块。1. greenlet的简单使用from greenlet import greenletdef eat(name): print(name,'eat one') g2.switch(name) print(name,'eat two') g2.switch()def play(name): print(name, 'play one') g1.switch(name) pri原创 2021-05-09 17:40:53 · 286 阅读 · 0 评论 -
python协程异步 I/O----asyncio
协程本质上是单线程,协程的调度是在单个线程里执行的,切换的开销比较小,因此效率上略微比多线程高。有了协程,在执行IO耗时操作时,函数可以临时让出控制权,让CPU去执行其他函数。协程的应用场景:IO密集型。python3中使用协程的库:asyncio1. 协程的简单实例import asyncioimport timeasync def task(): print("task start") time.sleep(2) print("task end")原创 2021-05-09 16:26:03 · 225 阅读 · 0 评论 -
Python远程执行命令模块-Paramiko
paramiko是一个SSHv2协议的python实现,提供客户端和服务器的功能。paramiko可以通过ssh协议执行远程主机的程序或脚本,获取输出结果和返回值,使用起来简介优雅。安装方式:pip3 install paramiko1. 基于用户名和密码的SSHClient方式登录编程步骤如下:(1)初始化一个SSHClient类的实例(2)调用connect方法连接远程主机(3)执行命令获取输出和返回值,关闭连接代码实现:import paramiko# 建立一个s原创 2021-04-29 22:15:34 · 2070 阅读 · 0 评论 -
Python 实例方法、类方法、静态方法的区别与作用
Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。首先,这三种方法都定义在类中。下面我先简单说一下怎么定义和调用的。(PS:实例对象的权限最大。)实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为 self,通过它来传递实例的属性和方法(也可以传类的属性和方法); 调用:只能由实例对象调用。类方法 定义:使用装饰器@classmethod。第一个参数必须是当前类对象...转载 2021-04-21 23:27:25 · 146 阅读 · 0 评论 -
python读取yaml文件
1.简介YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。YAML 的原创 2021-04-18 15:07:47 · 1898 阅读 · 0 评论