书上的例程分析
先上代码
!/usr/bin/env python
coding=utf-8
import sys
def print_lol(the_list,indent=False,level=0,fh=sys.stdout):
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item,indent,level+1,fh)
else:
if indent:
for tab_stop in range(level):
print("\t",end="",file=fh)
print(each_item,file=fh)
- 首先,函数共四个参数,分别是一个列表;一个bool值,用来确定是否分级输出;一个level,用来确定缩进值;一个文件名,确定输出文件
- 四个参数有3个是可选的,默认是不分级输出,缩进为0,输出到屏幕;当然也可以自己赋值
- 函数中用到了递归,可以处理嵌套列表,注意迭代部分参数类型数量要和原函数一致
- if isinstance(each_line ,list)用来判断参数是不是一个列表
- print(“\t”,end=”“)作用等同于按下tab键,end=”“表示这次迭代不换行
- file参数制定输出,不是文件名,而是open函数的左边,这个函数默认是sys.stdout(),标准输出至屏幕
python标准数据处理库pickle学习
-
保存数据用pickle.dump(),读取数据用pickle.load(),通过以下例子加深认识
import pickle
with open("name.txt","wb") as save:
pickle.dump([1,2,3],save)
with open("name.txt","rb") as read:
list=pickle.load(read)
print(list)wb和rb中的b表示二进制
-
如果中途出现问题,pickle模块会产生一个PickleError类型的异常
except pickle.PickleEror as perr:
print("pickleing error"+str(perr))