Python Cookbook笔记
字符串:s.strip() 删除字符串开始和结尾的空白字符。 s.lstrip() 删除左边的,s.rstrip() 删除右边的。
随机数:random.random() 生成0-1之间的数。 random.randint(0,100) 生成0-100之间的整数。
unicode文本标准化
import unicodedata
unicodedata.normalize(‘NFD’, s)文件: with open() as f: with控制块结束时,文件会自动关闭。
f = open(), f.close() 不使用with时,需手动关闭
向文件追加内容,而不覆盖文件内容, 用at(ab)模式 or xt(xb)模式
文件是否存在: os.path.exists('somefile')字节字符串与十六进制之间的转换:
import binascii
s = b'hello'
h = binascii.b2a_hex(s)
binascii.a2b_hex(h) import base64
s = b'hello'
h = base64.b16encode(s)
base64.b16decode(h)struct模块 编码和解码二进制数据:
<表示字节顺序低位开始, >表示从高位开始,i表示32位整数(4字节),d表示64位浮点数(8字节), f表示32位浮点数(4字节), !表示网络字节顺序from struct import Struct
record = Struct('<idd')
record.size #4+8+8 大小为20
record.pack(1, 2.0, 3.0)
record.unpack(_) # 另一种方法
import struct
struct.pack('<idd', 1, 2.0, 3.0)
struct.unpack('<idd', _)id() 方法返回值是对象的内存地址。
eval() 函数可以把string格式的对象转为引号内原来的类型。 例如: a = '123', b=eval(a) 则b为int类型。
yield: 生成器 对当前迭代进行操作,每次返回当前迭代的值.并没有把所有值放在内存中,动态地生成值.
lambda表达式: 匿名函数,不需要def定义和return显式返回。
正则匹配手机号、邮箱:
a = 'xxxx'
p = re.compile('[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$|^1[3578]\d{9}$|^147\d{8}$')
b = p.match(a)
# [^\._-] 匹配不含. _ -等特殊字符
# (?:pattern) 匹配不获取匹配结果时间操作:
# 北京时间:string类型
a = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# utc时间:date类型
b = datetime.datetime.utcnow()
# 加减时间:
a+datetime.timedelta(hours=8) # 加8小时
a+datetime.timedelta(days=8) # 加8天获取当月第一天日期:
datetime模块:
d = datetime.datetime.now()
m = d.month
y = d.year
date = datetime.datetime(y, m, 1)2. time模块:
import time
a = time.localtime()
end_time =str(datetime.datetime(get_time.tm_year,get_time.tm_mon,get_time.tm_mday, 23, 59, 59)) # 获取当前时间:年月日时分秒
start_time = str(datetime.datetime(get_time.tm_year,get_time.tm_mon,1)) # 获取当月第一天日期使用线程队列有一个要注意的问题是,向队列中添加数据项时并不会复制此数据项,线程间通信实际上是在线程间传递对象引用。如果你担心对象的共享状态,那你最好只传递不可修改的数据结构(如:整型、字符串或者元组)或者一个对象的深拷贝。 copy.deepcopy(data)
- Jquery获取当前时间:
function currentTime() {
var d = new Date(), str = '';
str += d.getFullYear() + '年';
// 月份、天数计算从0开始,需要加1
str += d.getMonth() + 1 + '月';
str += d.getDate() + 1 + '日';
return str;
} 多进程与多线程
计算密集型程序,多进程并发优于多线程;IO密集型程序,多线程并发优于多进程
multiprocessing.JoinableQueue, concurrent.futures.ProcessPoolExecutor(进程池) 是多进程安全的,不产生死锁
Python Cookbook笔记的更多相关文章
- Python Cookbook 笔记--12章并发编程
<Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来 ...
- python cookbook 笔记一
因为有些代码只有在python3里可以正常运行,所以最好配两个虚拟环境 安装虚拟环境: pip install virtualenv virtualenv -p /usr/bin/python3.5 ...
- python cookbook 笔记三
分组: rows = [ {'address': '5412 N CLARK', 'date': '07/01/2012'}, {'address': '5148 N CLARK', 'date': ...
- python cookbook 笔记二
去重和排序: #coding=utf-8 def dedupe(items): seen = set() for item in items: if item not in seen: yield i ...
- 《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记
看<Python cookbook>的时候,第9.5部分,"定义一个属性可由用户修改的装饰器",有个装饰器理解起来花了一些时间,做个笔记免得二刷这本书的时候忘了 完整代 ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- python cookbook学习1
python cookbook学习笔记 第一章 文本(1) 1.1每次处理一个字符(即每次处理一个字符的方式处理字符串) print list('theString') #方法一,转列表 结果:['t ...
- Web Scraping with Python读书笔记及思考
Web Scraping with Python读书笔记 标签(空格分隔): web scraping ,python 做数据抓取一定一定要明确:抓取\解析数据不是目的,目的是对数据的利用 一般的数据 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
随机推荐
- codevs 2995 楼房
/*暴力30分*/ #include<iostream> #include<cstring> #include<cstdio> #include<map> ...
- python对象(腌制)
python的内置对象类型主要有数字,字符串,列表,元祖,字典,集合等等,在python中,一切皆为对象 #腌制在python中如果我们有一些对象需要持久性存储,并且不丢失我们这个对象的类型与数据,我 ...
- ARGB和RGB
ARGB 一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构. ARGB---Alpha,Red,Green,Blue. Alpha-图像通道 如果图形卡具有 ...
- Objective-C学习篇07—NSArray与NSMutableArray
大纲 NSArray NSMutableArray 快速枚举 NSArray NSArray是一个静态数组,也就是一个不可变数组,一旦创建以后,就不能进行添加,删除或者修改其中的元素.NSArray继 ...
- java学习——多线程
本文内容来源于 历经5年锤练--史上最适合初学者入门的Java基础视频 线程:就是进程中一个负责程序执行的控制单元(执行路径) 每一个线程都有自己运行的内容.这个内容可以称为线程要执行的任务. 多线 ...
- 学习OpenSeadragon之二 (界面缩放与平移规则设置)
OpenSeadragon入门了解请看第一篇:http://www.cnblogs.com/yingjiehit/p/4362377.html OpenSeadragon给我们提供了很多的可选界面元素 ...
- [转] JS运算符 &&和|| 及其优先级
第一.&& (逻辑与)运算,看一个简单的例子: var a = 1 && 2 && 3; var b = 0 && 1 &&am ...
- sql 当重复的数据有多条时,保留一条,删除其他重复
delete from proj_info where newcode in (select newcode from proj_info group by newcode hav ...
- PHP文章管理(2)
##############index.php###################### <?session_start(); require"./inc/func.php&qu ...
- Java Tomcat 中调用.net DLL的方法
近日一个java的项目,客户要求项目中必须使用其提供的加密机制,扔给了两个.net写的DLL.网络上搜了一圈也没找到啥东西,甚至看到人扬言此事绝无可能.郁闷当中考虑了一个思路.用C#做一个Com,调用 ...