書上的例程分析
先上代碼
!/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))