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 {}生成火焰图