Python 常用包记录
python 自带包
内置函数
-
type(object)
返回对象的类型 -
isinstance(object,classinfo)
判断对象是否匹配类型,考虑继承关系classinfo
可以为元组形式isinstance(object,(str,int,list))
,表示只要满足其中一个类型即可
1 |
|
argparse
命令行参数解析
1 |
|
string
join
string.join(iterable)
将当前字符串作为分割符,将迭代列表元素进行分割后,组成新的字符串
1 |
|
format
1 |
|
strip
str.strip([chars])
删除字符串前后的指定字符序列,如果不传参数默认为空格和换行。
- 传入的字符串会被看作是字符数组,每个字符都独立被用于删除操作
- 字符数组的字符可能会被反复利用,直到没有可以删除的字符为止
1 |
|
datetime
datetime 包可以用于时间的各种计算,其中有几个关键类型:
date
年月日等日期相关time
时分秒等时间相关datetime
年月日时分秒完整信息timedelta
两个date/time/datetime
之间的差timezone
时区信息
1 |
|
base64
base64 格式用 64 个可打印字符来表示二进制数据,操作过程输入输出都是 bytes 类型。
1 |
|
inspect
代码反射相关
1 |
|
json
json 操作
str1 = json.dumps(obj)
对象转 json 字符串-
obj1 = json.loads(str1)
json 字符串转对象 - 注意,python 的 set 类型无法兼容 json,会报错。如果必须使用,可以转为 List[str] 或 dict 替代。
logging
打印 log
1 |
|
re
regex 正则表达式相关
1 |
|
1 |
|
copy
深拷贝
import copy
original_list = [1, 2, 3, [4, 5]]
copied_list = copy.deepcopy(original_list)
sys
系统相关
-
sys.path.insert(0, '/tmp')
将指定的路径加入到 path 中的最前面(第 0 个位置) -
sys.argv
传递进程调用时传入的参数
1 |
|
exc_type, exc_value, exc_traceback = system.exc_info()
返回异常信息,包括异常类型、异常信息、调用栈
traceback
用于打印调用栈
-
traceback.print_stack()
打印调用栈 -
traceback.format_exception(exc_type, exc_value, exc_traceback)
将异常信息转为字符串
thread
这个包比较特殊,是隐藏包,一般用threading
代替。如果非要使用,可以import _thread as thread
threading
多线程相关高级功能
1 |
|
启动线程
1 |
|
线程专用成员变量 threading.local()
有时,某个变量想要不同线程区分开,可以用下面方法实现。
1 |
|
multiprocessing
多进程相关功能,与线程相比有更好的独立性,一个进程挂掉不影响别的进程,但无法共享变量和锁。
1 |
|
启动进程
1 |
|
time
time.sleep(1) # second
进程挂起
uuid
生成 uuid
1 |
|
第三方包
pyjwt
实现 jwt(JSON Web Token) 编解码
1 |
|
pyyaml
操作 yaml 文件
1 |
|
pipdeptree
可以用命令查看 python 包的依赖关系
pipdeptree
显示依赖树
requests
简化 http 请求
1 |
|
pprint
打印嵌套对象。 pprint 只能用于一般测试,因为它无法把输出结果放到字符串中,在有 logger 时会使用不便,不过 logger 一般都有嵌套打印功能。
1 |
|
pyflakes
提供基本的语法扫描功能
-
python -m file1.py file2.py ...
扫描指定代码 path -
python -m pyflakes ./folder1/* | grep -Ev 'but never used|imported but unused|redefinition of unused|may be undefined|unable to detect undefined names'
扫描指定文件夹下所有.py
文件,并且忽略常见的 warning
py-spy
python 进程运行情况查询
-
py-spy dump --pid {}
查看进程调用堆栈 -
py-spy top --pid {}
获取函数调用消耗 -
py-spy record -o profile.svg --pid {}
生成火焰图