随笔分类 - Python
摘要:Celery是一款非常简单,灵活, 可靠的分布式系统, 可用于处理大量消息, 并且提供了一整套操作此系统的一系列工具 Celery是一款消息队列工具, 可用于处理实时数据以及任务调度 什么是任务队列? 任务队列一般用于线程或计算机之间分配工作的一种机制 任务队列的输入是一个成为任务的工作单元, 有专
阅读全文
摘要:在尝试编写快速的查询之前,需要清楚一点,正在重要的是响应时间。如果把查询看做一个任务,那么他由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行速度,要么让子任务运行更快 Mysql在执行查询有哪些子任务,哪些子任务运行
阅读全文
摘要:如果让进程间互相说说话呢? Python为我们提供了一个函数multiprocess.Pipe和一个类: multiprocessing.Queue Queue实现进程间通信 简单的理解Queue实现进程间通信的方式,就是使用了操作系统给开辟一个队列空间,各个进程看把数据放到改队列中,当然也可以从队
阅读全文
摘要:介绍 系統启动了一个新线程的成本是比较高的,因为它涉及到与操作系统的交互。在这种情形下,使用线程池可以很好的提升性能,尤其是当程序中需要创建大量生存期很短暂的线程的时候,更应该考虑使用线程池 线程池在系统启动的时候即创建大量空闲的线程,程序只要将一个函数提交给线程池,线程池就会启动一个空闲的线程来执
阅读全文
摘要:1. Sorted() 排序函数 作用: 排序(可通过key参数, 函数) a = [{'name': 'alex', 'age': 76}, {'name': 'bob', 'age': 34}, {'name': 'jan', 'age': 31}, {'name': 'tony', 'age'
阅读全文
摘要:Python网络编程 Python提供了两个级别访问的网络服务 低级别的网络服务支持基本的Socket,它提供了标准的BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。 高级别的网络服务模块SocketServer,它提供了服务中心类,可以简化网络服务器的开发。 什么是
阅读全文
摘要:Mysql是一个开放源码的关系数据库管理系统,原开发者为瑞典的Mysql AB公司,目前为Oracle旗下产品 被甲骨文公司收购后,自由软件社群们对于Oracle是否还会持续支持Mysql社群版(Mysql之中唯一的免费版本)有所隐忧,因此Mysql的创始人麦可尔.维德纽斯以Mysql为基础,成立分
阅读全文
摘要:Linux grep 命令用于查找文件里符合条件的字符串 grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所制定的范本样式,预设grep指令会把范本样式的那一列显示出来。 语法 grep [-abcEFGhHilLnqrsvVwxy] 范本样式 文件或目录 -a或者-tex
阅读全文
摘要:Linux上的find命令是findutil软件包的一部分, 一般已经默认集成在了几乎所有的发行版中 find命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限, 属主, 属组,文件类型,日期和大小等)来定位系统中的文件和目录 此外,find还支持对搜索到的结果进行多种类型的命令操作 一.
阅读全文
摘要:Gevent是一个基于Greenlet实现的网络库,通过greenlet实现协程。基本思想是一个greenlet就认为是一个协程, 当一个greenlet遇到IO操作的时候,比如访问网络,就会自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经
阅读全文
摘要:快速寻找文件 根据文件名字匹配, 根据文件内容匹配 #!/usr/bin/env python # -*- coding: utf-8 -*- import os import re class QuickSearchFile: ''' 快速寻找文件 ''' def file_name_search
阅读全文
摘要:内存管理: 概述 在Python中,内存管理涉及到一个包含所有Python对象和数据结构的私有堆(heap). 这个私有堆的管理由内部的Python内存管理器保证。Python内存管理器有不同的组件来处理各种动态存储管理方面的问题,如共享,分割,预分配或缓存。 在最底层,一个原始内存分配器通过与操作
阅读全文
摘要:一. Python操作Excel 常用工具: 数据处理是Python的一大应用场景,而Excel又是当前最流行的数据处理软件。因此用Python进行数据处理时,很容易会和Excel打交道。得益于前人的辛勤劳作,Python处理Excel 已有很多现成的轮子,比如xlrd&xlwt&xlutils,
阅读全文
摘要:一. Python线程互斥锁Lock 使用多线程可以同时执行多个任务,提高开发效率,但是在实际开发中往往我们会碰到线程同步问题,假如有这样一个场景:对全局变量累加1000000此,为了提高开发效率,我们可以使用多线程完成,示例代码如下: #!/usr/bin/python # -*- coding:
阅读全文
摘要:一. 线程定时器Timer原理 Timer最基本的理解是定时器,可以启动多个定时任务,这些定时器任务是异步执行,所以不存在等待顺序执行顺序。 定时器只能执行一次,如果需要重复执行,需要重新添加任务。 导入模块 from threading import Timer timer = threading
阅读全文
摘要:同步和异步: 同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。是一种线性执行的方式,执行的流程不能跨越。 异步与同步相反,在调用发出后,调用者可以继续执行后面的操作,被调用者通过状态通知调用者,或者通过回调函数来通知结果。 1. Asyncio模块 import asyncio im
阅读全文
摘要:os模块: os表示操作系统,该模块主要用来处理与系统相关的操作 最常用的是文件操作:打开 获取 写入 删除 复制 重命名 常用操作: os.getcwd():返回当前文件所在文件夹路径 os.chdir():修改当前工作目录 os.churdir():获取当前目录的字符串表现方式 os.maked
阅读全文
摘要:super()函数是用于调用父类(超类)的一个方法 super()是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO),重复调用(钻石继承)等种种问题。 MRO是类的方法解析顺序表,其实也就是继承父类方法时的顺序表 语法: supe
阅读全文
摘要:logging介绍 python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用,这个模块提供不同的日志级别,并可采用不同的方式记录日志。 # -*- coding: UTF-8 -*- import os import logging import time from l
阅读全文
摘要:常用快捷键 1. Ctrl + /: 注释(取消注释)选择的行 2. Ctrl + Alt + l: 自动缩进行 3. Ctrl + Shift + +: 展开所有的代码块 4. Ctrl + Shift + -: 收缩所有的代码块 5. Alt + Enter: 优化代码,提示信息实现自动导包 6
阅读全文