python
会不会依然想起我a
这个作者很懒,什么都没留下…
展开
-
python中文编码解决
#coding=utf-8import sysreload(sys)sys.setdefaultencoding('utf-8')原创 2017-11-17 16:26:02 · 184 阅读 · 0 评论 -
事件驱动io
论事件驱动与异步IO通常,我们写服务器处理模型的程序时,有以下几种模型:(1)每收到一个请求,创建一个新的进程,来处理该请求;(2)每收到一个请求,创建一个新的线程,来处理该请求;(3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求上面的几种方式,各有千秋,第(1)中方法,由于创建新的进程的开销比较大,所以,会导致服务器性能比较差,但实现比较简单。第(2)种方式,由于要涉...转载 2018-04-14 14:42:10 · 482 阅读 · 0 评论 -
memcached和redis介绍
MemcachedMemcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。Memcached安装和基本...转载 2018-04-14 14:59:44 · 148 阅读 · 0 评论 -
网络编程之Socket编程
socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递。 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上的具体服务,操作系统有0-65535个端口,每个端口都可以独立对外提供服务,如果 把一个公司比做一台电脑 ,那公司的总机号码就相当于ip地址, 每个员工的分机号就相当于端口, 你想找公司某个人,必须 先打电话到总机,然后...原创 2018-04-12 19:51:03 · 139 阅读 · 0 评论 -
多进程,多线程
程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程转载 2018-04-13 11:46:26 · 125 阅读 · 0 评论 -
python协程介绍
协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此:协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置。协程的好处...原创 2018-04-14 10:38:50 · 121 阅读 · 0 评论 -
python time datetime string 互相转换
#把datetime转成字符串def datetime_toString(dt): return dt.strftime("%Y-%m-%d-%H")#把字符串转成datetimedef string_toDatetime(string): return datetime.strptime(string, "%Y-%m-%d-%H")#把字符串转成时间戳形式def s...转载 2018-04-24 20:09:53 · 112 阅读 · 0 评论 -
python操作mysql数据库cursor导致oom处理方法
当使用sql查询的结果有非常多行时,如果使用默认的cursor,你的程序在接受数据的的时候很可能卡住或者被杀死,原因是mysql客户端(Java,Pyhton)默认在内存里缓存下所有行然后再处理,如果内存溢出后,你的程序就会被杀死。解决方式是实用流式游标,在Python中,你可以使用pymysql.cursors.SSCursor(或者SSDictCursor)来解决这个问题import ...原创 2018-06-20 16:05:35 · 1820 阅读 · 0 评论 -
python 导入上级目录中的模块
开始使用 from ../* import 模块名 直接报错了;后来查了查资料原来python解释器会从当前模块所在目录和sys.path指定的路径取查找模块,所以解决也就很简单了解决方法:sys.path.append('../')from 上级目录名 import 模块名 #不需要../,这样就可以了 ...原创 2018-07-16 20:34:32 · 13373 阅读 · 0 评论 -
python json模块出现Invalid control character这个异常的原因
有些字符串,比如strings='{"key":"valaaaaabb"}'中间包含了一个换行,我们在使用json.loads(strings),就会报这个错误这个原因是默认只转化json的标准格式,像这种不标准的格式怎么办呢,很简单json.loads(strings,strict=False)#有这个参数就可以转换不标准的json格式了!...原创 2018-07-23 16:14:08 · 7367 阅读 · 0 评论 -
python 操作mongodb
from pymongo import MongoClientclient = MongoClient('localhost', 27017)#建立和数据库系统的连接,创建Connection时,指定host及port参数db_auth = client.admindb_auth.authenticate("account", "password")#admin 数据库有帐号,连接-认...转载 2018-07-23 16:33:03 · 170 阅读 · 0 评论 -
python 进程锁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 from multiprocessing import Process, Lock def func(lock, i): lock.acquire()#加锁 ...原创 2018-07-18 11:54:35 · 817 阅读 · 0 评论 -
python datetime,时间戳,string的互相转换
import datetimeimport time#datetime转成字符串,#strftime函数就是接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定def datetime_to_string(dt): return dt.strftime("%Y-%m-%d-%H") #字符串需要不需要"-",自己定#字符串转成datetime...原创 2018-07-19 11:57:52 · 591 阅读 · 0 评论 -
linux pip安装
yum install pthon-pip然后就可以使用pip安装各种模块了原创 2018-07-07 11:19:04 · 2965 阅读 · 0 评论 -
python 获取昨天和明天的八位日期
import timeimport datetimetoday=datetime.date.today()oneday=datetime.timedelta(days=1)yesterday=(today-oneday).strftime("%Y%m%d")#昨天的日期tomorrow=(today+oneday).strftime("%Y%m%d")#明天日期...原创 2018-07-13 17:51:20 · 3143 阅读 · 0 评论 -
python列表中位数的获取
中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数。在这个任务里,你将得到一个含有自然数的非空数组(X)。你必须把它分成上下两部分,找到中位数。 输入: 一个作为数组的整数(int)列表(list)的。输出: 数组的中位数(int, f...转载 2018-07-20 15:55:10 · 5169 阅读 · 0 评论 -
python2.7升级3.5教程 可用
简述CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级。由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新 Python 时,建议不要删除旧版本(新旧版本可以共存)。简述查看 Python 版本号下载新版本解压缩安装配置编译 安装验证设置 3x 为默认版本配置 yum版权所有:一去丶二三里,转载请注明出处:http:/...转载 2018-03-05 21:01:25 · 7572 阅读 · 1 评论 -
面向对象,与c++类似
封装,继承,多态以外还有静态方法通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法12345678...原创 2018-02-13 15:30:04 · 211 阅读 · 0 评论 -
python常用模块之re模块
一、简介正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。二、正则表达式中常用的字符含义1、普通字符和11个元字符:普通字符匹配自身abcabc.匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符a.cabc\转义字符,使后一个字符改变...转载 2018-02-13 15:25:35 · 159 阅读 · 0 评论 -
获取python未知异常信息的方法
今天操作数据库的时候,进程总是down掉,通过异常捕获找到了原因获取具体异常的方法:使用 sys模块try:异常语句except:print(sys.exc_info())原创 2017-11-30 19:27:46 · 1294 阅读 · 0 评论 -
python中的字符数字之间的转换函数
int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串转载 2018-02-03 15:17:25 · 132 阅读 · 0 评论 -
python常用模块之json 和 pickle
这两个模块用于序列化,区别在于:Json用于字符串和python数据类型之间进行转换pickle用于python特有的类型和python数据类型之间进行转换原创 2018-02-09 14:06:05 · 161 阅读 · 0 评论 -
python模块之shelve
shelve是python的自带model。可以直接通过import shelve来引用。shelve类似于一个存储持久化对象的持久化字典,即字典文件。使用方法也类似于字典。保存对象至shelve文件中:[python] view plain copyimport shelve wangzhe = dict(zip(['name','age'],['wangzhe',24])) lijia...转载 2018-02-09 14:13:26 · 212 阅读 · 0 评论 -
python常用模块time模块
在平常的代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。这篇文章,主要讲解time模块。在开始之前,首先要说明这几点:在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。...转载 2018-02-09 14:24:37 · 153 阅读 · 0 评论 -
python 输入密码不可见处理
这是普通输入:#!usr/bin/python#_*_coding:utf-8_*_name=input("what ")print name #默认name是string类型如果想让输入不可见:import getpasspasswd=getpass.getpass("输入密码")print passwd原创 2018-02-05 11:26:55 · 6940 阅读 · 1 评论 -
python的.pyc是什么?
Python是一门解释性语言,我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉解释器:要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。pyCodeObject则是Python编译器真正编译成的结果。当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运原创 2018-02-05 11:30:18 · 546 阅读 · 0 评论 -
python2 编码问题思路
转载 2018-02-05 11:34:22 · 119 阅读 · 0 评论 -
python匿名函数以及内置函数的使用
一、匿名函数 1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序。 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个,用逗号隔开;冒号右边的为表达式,需要注意的是只能有一个表达式。由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收。转载 2018-02-05 11:39:00 · 277 阅读 · 0 评论 -
生成器
#由于之前有个需求,多进程,每个进程负责2000W条数据生成写库,发现使用range(20000000)内存瞬间爆满,最后改为生成器使用xrange即可>>> a = [i+1 for i in range(10)]>>> a[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]这就叫做列表生成通过列表生成式,我们可以直接创建一个列表。但是,受到内存原创 2018-02-05 11:59:38 · 168 阅读 · 0 评论 -
迭代器
一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象:而生成器不但可以作用于for循环,还可以被next()函原创 2018-02-05 12:02:48 · 144 阅读 · 0 评论 -
装饰器
装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码。装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们以装饰函数为例子介绍其用法。要理解在Python中装饰器的原理,需要一步一步来。本文尽量描述得浅显易懂,从最基础的内容讲起。(注:以下使用Python3.5.1环境)一、Python的转载 2018-02-05 14:23:40 · 227 阅读 · 0 评论 -
python常用模块之os模块
用于提供系统级别的操作os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.curdir 返回当前目录: ('.')os.pardir 获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多层转载 2018-02-05 14:34:19 · 162 阅读 · 0 评论 -
python常用模块之sys模块
用于提供对解释器相关的操作sys.argv 命令行参数List,第一个元素是程序本身路径sys.exit(n) 退出程序,正常退出时exit(0)sys.version 获取Python解释程序的版本信息sys.maxint 最大的Int值sys.path 返回模块的搜索路径,初始化时使用PYT转载 2018-02-06 10:46:30 · 166 阅读 · 0 评论 -
python常用模块之hashlib
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法import hashlib # ######## md5 ######## hash = hashlib.md5()hash.update('admin')翻译 2018-02-06 10:46:17 · 200 阅读 · 0 评论 -
python整数相除获取浮点数的方法
在python中进行两个整数相除的时候,在默认情况下都是只能够得到整数的值,而在需要进行对除所得的结果进行精确地求值时,想在运算后即得到浮点值,那么如何进行处理呢?1、修改被除数的值为带小数点的形式即可得到浮点值,这种方法在被除数事先知道的情况下才可以采用有效,而这种情况意味着被除数的值是写死的、固定的,在绝大多数的情况下是不可行的;2、在进行除法运算前导入一个实除法的模块,即可在转载 2018-02-03 15:15:46 · 1996 阅读 · 0 评论 -
python写入mysql转移字符消失的问题
写入数据之前,使用pymysql或者mysqlDb 提供的内置方法scape_string()格式化一下字符串即可;原创 2019-05-15 15:35:51 · 921 阅读 · 0 评论