Python学习日记(4)使用Pickle()模块读写对象
使用pickle存储对象
我们可以将任何对象转化为文本进行储存,但是,复杂的对象映射成文本,在从新映射回来一定非常麻烦。
所以,我们使用pickle()模块进行文本的映射封装。
pickle对象使用“rb”,“wb”来打开文件并进行输入输出。
如果要保存对象,就使用pickle.dump()函数。
它的第一个参数是要“转储”,或者说是要储存文件的对象,第二个参数接收文件的对象。
import pickle lyst = ["test1_string",11,60] ff = open("admin.txt","wb") for i in lyst: pickle.dump(i,ff) #将列表的值取出来,放入打开的文件实例中 ff.close()
文件存储完毕后,如果要加载存储的对象,比如例子中列表的对象lyst,可以使用pickle.load()函数
将封装的对象加载到程序中,如果达到了文件末尾,这个函数会引发一个异常。因为在引发异常之前,没有明确的方法来检查是否已经达到了文件末尾
所以这里要使用try-except语句捕获这个异常;
import pickle lyst = [] ff = open("admin.txt","rb") while True: #这里while True是因为pickle.load函数一次只取出了文件中的一个对象 try: item = pickle.load(ff) lyst.append(item) except EOFError: #EOFError错误接收文件读取完毕后报错,此时关闭文件并跳出循环 ff.close() break print(lyst)
字符串和列表的处理
lyst.strip() #删除对象内的所有空白 lyst.lower() #将对象内所有元素变为小写 lyst.upper() #将对象内所有元素变为大写 lyst.title() #将对象内所有元素变首字母大写 lyst.center() #居中对齐 lyst.ljust() #靠左对齐 lyst.rjust() #靠右对齐 lyst.isalpha() #判断对象是否是纯字母,返回布尔值 lyst.isdigit() #判断对象是否是纯数字,返回布尔值 lyst.isalnum() #判断对象是否是字母加数字,返回布尔值 lyst.abs() #返回对象的绝对值