python
Always0nTheWay
一直在路上
展开
-
Python Queue模块详解
原文地址Python Queue模块详解Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象import Queueq = Queue.Queue(maxsize = 10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queu转载 2016-12-03 10:36:46 · 1222 阅读 · 0 评论 -
psutil--系统监控模块
原文地址一、psutil模块1. psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free转载 2017-04-28 17:18:49 · 4866 阅读 · 0 评论 -
Python生成器实现杨辉三角
杨辉三角杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。(引自于:百度百科)很容易就得出规律: 除根以外,每个数都由它上层的左右两数之和,一个数不存在即视为0。根为1由此规律,易得每层边界数值为1下面用Python的生成器来实现这个著名的三角:)生成器实现# _*_原创 2017-09-14 00:21:57 · 755 阅读 · 0 评论 -
Python获取文件及文件夹大小
1.获取文件大小import osos.path.getsize(filepath)2.获取文件夹大小这里没有直接的函数接口,但可以通过计算所有文件的大小和算出文件夹大小用os.walk函数遍历文件夹#! /usr/bin/python3import osdef getFileSize(filePath, size=0): if(os.path.isfile(filePath)):原创 2017-02-09 14:09:42 · 35526 阅读 · 2 评论 -
Python装饰器的理解
Python装饰器是什么Python装饰器就是一个函数,它的产生是为了在不改变目标函数结构的基础上为其增加功能,返回值是增加功能后的目标函数。一个简单的装饰器 -为程序添加简单的计时功能import timedef get_run_time(method): def wrapper(): start = time.time() method()原创 2017-09-01 01:37:56 · 273 阅读 · 0 评论 -
Python排序字典
Python排序可以通过内建函数sorted()实现,同时部分拥有sort()方法的数据类型也可以通过sort实现,由于字典没有sort方法,所以用sorted实现通过key值排序d = {'a': 2, 'A': 1, 1: 3, 'b': 2}sorted_key_list = sorted(d)print(sorted_key_list)sorted_dict = map(lambda x:原创 2017-09-17 02:25:29 · 16447 阅读 · 0 评论 -
Python 函数 类 语法糖
原文出处: zzir Python 语法糖\,换行连接<div id="crayon-59bea086412e0484925162" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-mac print-yes notranslate" data-sett转载 2017-09-18 00:39:42 · 647 阅读 · 0 评论 -
Python时间戳转为北京时间
要将时间戳转化为北京时间,这里涉及一个时区的问题,由于Python默认只有时间戳转化为UTC时间的函数,所以这里要引入pytz这个库首先安装pytz模块,使用pip install pytzimport timeimport datetimeimport pytztz = pytz.timezone('Asia/Shanghai') #东八区t = datetime.datetime.fro原创 2017-11-03 15:36:18 · 16933 阅读 · 4 评论 -
enums中Enum对象取值
In [2]: from enum import EnumIn [3]: class Test(Enum): ...: a, b, c = 1, 2, 3 ...: In [4]: Test['a']Out[4]: <Test.a: 1>In [5]: Test['a'].valueOut[5]: 1In [6]: Test['a'].nameOut[6]: 'a'原创 2017-12-08 20:04:47 · 1297 阅读 · 0 评论 -
Python抽象类与抽象方法
抽象方法 抽象方法表示基类的一个方法,没有实现,所以基类不能实例化,子类实现了该抽象方法才能被实例化。 Python的abc提供了@abstractmethod装饰器实现抽象方法,下面以Python3的abc模块举例。实现In [19]: from abc import ABC, abstractmethodIn [20]: class A(object): ...: '原创 2017-12-22 13:19:55 · 4928 阅读 · 0 评论 -
Python max(min)函数
取value最大的字典In [1]: a = {'teacher_id': 234234, 'count': 20}In [2]: b = {'teacher_id': 23443454, 'count': 30}In [3]: c = {'teacher_id': 4533454, 'count': 70}In [5]: max([a, b, c], key=lambda x: x['count原创 2017-12-14 13:42:25 · 638 阅读 · 0 评论 -
pycharm license server
在 License sever address 处填入 `http:xidea.online`转载 2018-01-24 16:04:57 · 5942 阅读 · 0 评论 -
UnicodeDecodeError: 'ascii' codec can't decode byte... Python编码问题
获取默认编码import syssys.getdefaultencoding()--------->>> ascii设置默认编码为utf-8import sysreload(sys)sys.setdefaultencoding("utf-8")! 注意,需先reload(sys),否则可能报错,无setdefaultencoding属性原创 2018-01-29 12:36:35 · 498 阅读 · 0 评论 -
JSON 序列化函数,处理 Mongo ID
import bson, jsondef default(obj): """ JSON 序列化函数,处理 Mongo ID 用法:json.dumps(default=default) :param obj: :return: """ if isinstance(obj, bson.objectID): return bs...原创 2018-02-27 15:32:27 · 904 阅读 · 0 评论 -
Python2 ascii codec can't encode characters in position ordinal not in range(128)
str.encode('utf-8') if isinstance(str, unicode) else str原创 2018-06-28 11:23:58 · 743 阅读 · 0 评论 -
Python smtplib 邮件发送xls文件
要解决一个定时发送报表给特定人员的问题,利用crontab + Python smtplib很方便就解决了,邮件发送代码如下#!/usr/bin/env python# -*- coding: utf-8 -*-"""Author: [email protected]: 2018/7/16 下午5:09"""from __future__ im...原创 2018-07-17 11:16:33 · 2954 阅读 · 0 评论 -
Python字符串的encode与decode研究心得--乱码问题解决方法
原文地址为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“\xe4\xb8\xad\xe6\x96\x87”的形式?为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。转载 2017-01-29 16:31:55 · 287 阅读 · 0 评论 -
Base64编码及其作用
原文地址Base64编码的作用:由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。它使用下面表中所使用的字符与编码。而且base64特别适合在http,mime协议下快速传输数据。base64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法转载 2017-02-14 14:27:02 · 413 阅读 · 0 评论 -
Python 的 GIL 是什么鬼,多线程性能究竟如何
文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部作者:卢钧轶(cenalulu)本文原文地址: http://cenalulu.github.io/python/gil-in-python/ 前言:博主在刚接触Python的时候时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号。本着不光要知其然,还要知其所以然的研究态度,博主搜集了转载 2016-11-22 00:13:28 · 471 阅读 · 0 评论 -
Python装饰器
Python装饰器简介Python装饰器本质上是一个函数,它可以让其他函数不做代码变动的情况下,增加额外的功能,其返回值是增加功能后的新函数,可抽离出常用的修饰代码作为装饰器,增强了代码的可重用性.装饰器简单的装饰器def foo(): print "I am foo"添加一个新的需求,输出关于该函数函数名的信息 –>import loggingdef foo(): print "I am原创 2016-11-24 00:29:55 · 462 阅读 · 0 评论 -
10种检测Python程序运行时间、CPU和内存占用的方法
10种检测Python程序运行时间、CPU和内存占用的方法作者:Marina Mele 字体:[增加 减小] 类型:转载 时间:2015-04-01 我要评论这篇文章主要介绍了10种检测Python程序运行时间、CPU和内存占用的方法,包括利用Python装饰器或是外部的Unix Shell命令等,需要的朋友可以参考下在运行复杂的Python程序时,执行时间会很转载 2016-11-28 00:19:51 · 12831 阅读 · 0 评论 -
Python并发机制(三)——异步I/O(select & poll)
python异步机制(三)——I/O多路复用selectselect通过一个select()系统调用来监视多个文件描述符组成的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,select本质上是通过设置或检查存放fd标志位的数据结构来进行下一步处理优点:具有良好的跨平台性缺点:单个进程可监视的fd数量被限制(在Linux上一般为1024)需要维护一个用来存放大量原创 2017-02-07 08:51:29 · 369 阅读 · 0 评论 -
Python变长参数,参数解包
我们知道,对于变长的函数参数,php中可以用数组,js中可以使用对象来进行传参。而收集函数参数,php中使用的方法为func_get_args(),在js中则使用arguments属性来获取(此属性类似数组)在python中,我们如何获取变长参数呢第一:使用列表,字典,元组例如def demo(x): for s in x:转载 2017-02-07 10:32:12 · 2619 阅读 · 0 评论 -
Python3.x和Python2.x的区别
原文地址这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和2.x的区别。特此在自己的空间中记录一下,以备以后查找方便,也可以分享给想学习Python的friends.1.性能 Py3.0运行 pystone benchmark的速度比转载 2017-02-07 11:17:07 · 204 阅读 · 0 评论 -
Python并发机制(二)——多线程
python并发机制(二)——多线程实例化threading.Thread()import threading,timedef fn(n): print n print str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))def main(): tpool = [] for i in range(10): t = t原创 2016-11-22 21:35:51 · 1352 阅读 · 0 评论 -
Python并发机制的实现(一)——多进程
python并发机制的实现(一) —— 多进程Unix/Linux系统调用实现多进程(Windows系统不支持)Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这原创 2016-11-21 23:02:55 · 4630 阅读 · 0 评论 -
python操作xml文件详细介绍
原文地址关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码。这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件。一、什么是xml?xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。abc.xml复制代码 代码如下:转载 2017-02-17 11:17:10 · 5212 阅读 · 8 评论 -
Python os.path模块
os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.path.exists(path) #路径存在则返回True,路径损坏返回Falseos.path.lex原创 2017-02-09 13:40:46 · 347 阅读 · 0 评论 -
Python的内存管理机制
原文地址先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲(1)垃圾回收(2)引用计数(3)内存池机制一、垃圾回收:python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值。对Python语言来讲,对象的类型和内存都是在运行时确定的。这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为对变量转载 2017-02-27 19:25:12 · 310 阅读 · 0 评论 -
Python中_,__,__xx__的区别
_xx 单下划线开头Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范.#! /usr/bin/pythondef singleton(cls): _instance = {} # 不建议外部调用 def _singleton(*args, **kar原创 2017-02-10 17:20:31 · 14137 阅读 · 0 评论 -
Python所有特殊方法, 魔术方法, 钩子
C.__init__(self[, arg1, ...]) 构造器(带一些可选的参数)C.__new__(self[, arg1, ...]) 构造器(带一些可选的参数)通常用在设置不变数据类型的子类。C.__del__(self) 析构器C.__str__(self) 可打印的字符输出;内建str()及print 语句C.__repr__(self) 运行时的字符串输出 内建re转载 2017-02-10 17:21:31 · 1060 阅读 · 0 评论 -
Python异常类型
原文地址1、NameError:尝试访问一个未申明的变量>>> vNameError: name 'v' is not defined2、ZeroDivisionError:除数为0>>> v = 1/0ZeroDivisionError: int division or modulo by zero3、SyntaxError:语法错误>>> int转载 2017-02-21 16:54:34 · 810 阅读 · 0 评论 -
Python2到Python3升级过程中需要注意的一些点
print格式的变化,如:print ‘a’, -> print (‘a’, end=’ ')re.compile(ur’’’…’’’) -> re.compile(r’’’…’’’)字符集的变化,Python3默认字符集unicode,Python2是ascii编码,所以Python3中需要去掉reload(sys); sys.setdefaultencoding('utf-8...原创 2019-02-26 12:06:33 · 899 阅读 · 0 评论