说明:Python中的pickle模块实现了基本的数据序列与反序列化,序列化对象可以在磁盘上保存对象,并在需要的时候读取出来。任何对象都可以执行序列化操作。
dump()方法
pickle.dump(obj, file, [,protocol])
参数定义:
obj:序列化对象,将对象obj保存到文件file中去
file:file表示保存到的类文件对象,file必须有write()接口,file可以是一个以‘w’打开的文件,或者是一个StringIO对象,也可以是任何可以实现write()接口的对象
protocol:序列化模式,默认是0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1表示以老式的二进制协议,2表示新二进制协议)
import pickle
fw = open("pickleFileName.txt", 'wb')
pickle.dump("try", fw)
load()方法
pickle.load(file)
注释:反序列化对象,将文件中的数据解析为一个python对象。file中有read()接口和readline()接口
import pickle
fr = open("pickleFileName.txt", "rb")
result = pickle.load(fr)
print(result)
pdb的两种用法
python3 -m pdb filename.py
import pdb
pdb.set_trace()
l
说明:
查看当前位置前后11行源代码(多次会翻页)
当前位置在代码中会用–>符号标出
命令:
ll
说明:
查看当前函数或框架的所有源代码
b
b linenum
b filename:linenum
b functionname
linenum:表示断点添加到哪一行
filename:文件名,断点添加到哪个文件
functionname:函数名,在该函数执行的第一行设置断点
b:不带参数表示查看断点位置
tbreak
tbreak linenum
tbreak filename:linenum
tbreak functionname
说明:
执行一次后自动删除
cl
cl filename:linenum
cl bpnumber
参数:
bpnumber 断点序号(多个以空格分隔)
说明:
不带参数用于清除所有断点(包括临时断点)
带参数则清除指定文件行或当前文件指定序号的断点
p expression
参数:
expression Python表达式
命令1
s #执行下一行(能够进入函数体)
命令2
n # 执行下一行(不会进入函数体)
命令3:
r # 执行当前运行函数到结束
命令1
c # 持续执行下去,制导遇到一个断点
命令2
unt linenum # 持续执行直到运行到指定行
命令3
j linenum # 直接跳转到指定行(注意,被跳过的代码不执行)
命令:
a # 在函数中打印函数的参数和参数的值
命令:
whatis expression
说明:
打印表达式的类型,常用来打印变量值
interact # 启动一个python的交互式解释器,使用当前代码的全局命名空间
w #打印堆栈信息,最新的帧在最底部,箭头表示当前帧
如果不想从程序开头执行pdb,那么可以在程序中import pdb之后,直接在代码里需要调试的地方放一个pdb.set_trace(),就可以设置一个断点,程序会在pdb.set_trace()暂停并进入pdb调试环境,可以用pdb变量名查看变量,或者c继续运行