1.file.readline()
通常情况下,都会返回带有换行符的一个字符串`’XXXX\n’
但当最后一句并没有换行符时,返回的字符串并不会带有换行符
因此file.readline()[:-1]
可能会漏掉最后一个有效字符
应使用
file.readline().replace('\n',str())
2.sqlite3
执行数据库的修改操作时,为了提高处理效率,有一个缓存,如果需要及时生效,需要commit
import sqlite3
conn.execute('update account set amount=? where account_id=? ',(6.45e4,account_id))
conn.commit
再区分游标cursor与之的不同
cur=conn.cursor()
cursor用于保存查询获取的结果,进行迭代处理
3.vars
1.var() == local()
2.var(object) == local() in end of the objext
4.slice
s = '123456789'
sl = slice(0,len(s),4) #尾部迭代不到
s[s1]
#'159'
5. set |=
set.add(xxx) <==> set |= {a}
6. functools
6.1 singledispatch python版函数重载
6.2 lru_cache 缓存函数(比如io相关)
6.3 partial / partialmethod(wrap class method)
包装一个函数与一些固定参数, 使之成为新函数partial(int, base=2)
7. itertools
很多函数式工具都在这儿了
8. struct
与 namedtuple结合,起到C struct 作用
pack / unpack 二进制流时,native情况下会有字节对齐的情况Native size and alignment are determined using the C compiler’s sizeof expression
比如
calcsize('bbb') #3
calcsize('bbbH') #6
calcsize('@bbbH') #6
calcsize('=bbbH') #5
calcsize('<bbbH') #5
calcsize('>bbbH') #5
< > = standard 字节数是标准的