-
字符串:s.strip() 删除字符串开始和结尾的空白字符。 s.lstrip() 删除左边的,s.rstrip() 删除右边的。
-
随机数:random.random() 生成0-1之间的数。 random.randint(0,100) 生成0-100之间的整数。
-
unicode文本标准化
1 import unicodedata 2 unicodedata.normalize(‘NFD’, s)
-
文件: with open() as f: with控制块结束时,文件会自动关闭。
f = open(), f.close() 不使用with时,需手动关闭
向文件追加内容,而不覆盖文件内容, 用at(ab)模式 or xt(xb)模式
文件是否存在: os.path.exists('somefile') -
字节字符串与十六进制之间的转换:
1 import binascii 2 s = b'hello' 3 h = binascii.b2a_hex(s) 4 binascii.a2b_hex(h) 5 6 7 8 import base64 9 s = b'hello' 10 h = base64.b16encode(s) 11 base64.b16decode(h)
-
struct模块 编码和解码二进制数据:
<表示字节顺序低位开始, >表示从高位开始,i表示32位整数(4字节),d表示64位浮点数(8字节), f表示32位浮点数(4字节), !表示网络字节顺序1 from struct import Struct 2 record = Struct('<idd') 3 record.size #4+8+8 大小为20 4 record.pack(1, 2.0, 3.0) 5 record.unpack(_) 6 7 8 # 另一种方法 9 import struct 10 struct.pack('<idd', 1, 2.0, 3.0) 11 struct.unpack('<idd', _)
-
id() 方法返回值是对象的内存地址。
-
eval() 函数可以把string格式的对象转为引号内原来的类型。 例如: a = '123', b=eval(a) 则b为int类型。
-
yield: 生成器 对当前迭代进行操作,每次返回当前迭代的值.并没有把所有值放在内存中,动态地生成值.
-
lambda表达式: 匿名函数,不需要def定义和return显式返回。
-
正则匹配手机号、邮箱:
1 a = 'xxxx' 2 p = re.compile('[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$|^1[3578]\d{9}$|^147\d{8}$') 3 b = p.match(a) 4 # [^\._-] 匹配不含. _ -等特殊字符 5 # (?:pattern) 匹配不获取匹配结果
-
时间操作:
1 # 北京时间:string类型 2 a = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') 3 # utc时间:date类型 4 b = datetime.datetime.utcnow() 5 # 加减时间: 6 a+datetime.timedelta(hours=8) # 加8小时 7 a+datetime.timedelta(days=8) # 加8天
-
获取当月第一天日期:
-
datetime模块:
-
-
1 d = datetime.datetime.now() 2 m = d.month 3 y = d.year 4 date = datetime.datetime(y, m, 1)
2. time模块:
1 import time 2 a = time.localtime() 3 end_time =str(datetime.datetime(get_time.tm_year,get_time.tm_mon,get_time.tm_mday, 23, 59, 59)) # 获取当前时间:年月日时分秒 4 start_time = str(datetime.datetime(get_time.tm_year,get_time.tm_mon,1)) # 获取当月第一天日期
-
使用线程队列有一个要注意的问题是,向队列中添加数据项时并不会复制此数据项,线程间通信实际上是在线程间传递对象引用。如果你担心对象的共享状态,那你最好只传递不可修改的数据结构(如:整型、字符串或者元组)或者一个对象的深拷贝。 copy.deepcopy(data)
- Jquery获取当前时间:
1 function currentTime() { 2 var d = new Date(), str = ''; 3 str += d.getFullYear() + '年'; 4 // 月份、天数计算从0开始,需要加1 5 str += d.getMonth() + 1 + '月'; 6 str += d.getDate() + 1 + '日'; 7 return str; 8 }
-
多进程与多线程
计算密集型程序,多进程并发优于多线程;IO密集型程序,多线程并发优于多进程
multiprocessing.JoinableQueue, concurrent.futures.ProcessPoolExecutor(进程池) 是多进程安全的,不产生死锁
转载于:https://www.cnblogs.com/logicalsky/p/5970452.html