一、扁平文件
1、文本文件
二、pickle
(用於python特有的類型和python的數據類型間進行轉換)
其可存儲的類型
- 所有python支持的原生類型:布爾值,整數,浮點數,複數,字符串,字節,None
- 由任何原生類型組成的列表,元組,字典和集合
- 函數,類,類的實例
pickle默認操作二進制文件,使用文件函數的時候需要注意,否則出現 TypeError
import pickle
person = {"name":"Peter","age":10}
##序列化爲字符串##
s = pickle.dumps(person)#對象序列化爲字符串
p = pickle.loads(s)#字符串反序列化爲對象
##序列化對象到文件##
pickle.dump(person,open("pickle_db","wb"))#必須二進制寫入
p2 = pickle.load(open("pickle_db","rb"))
總結
- 序列化爲字符串
.dumps(obj) #對象序列化爲字符串
.loads(obj) #字符串反序列化爲對象 - 序列化對象到文件
.dump(obj,file)
.load(file)
三、shelve
shelve是python中用來持久化存儲的模塊,類似於一個key-value的數據庫,但是這裏的value不限定類型,可以是python中任意的數據類型,也可以是自己定義的數據類型。
import shelve
score = [99,98,77]
student = {"name":"Mike","age":20}
db = shelve.open("shelve_student")
db['s'] = student
db['score'] = score
del db['score'] #刪除
db.close()
總結:
.open(“dbfile”)
.close()
db[‘key1’] = obj1 #obj1 可以爲字典,列表等等類型
db[‘key2’] = obj2 #obj2 可以爲字典,列表等等類型
…
len(db)
del db[‘keyn’]
四、ORM
python-ORM
另外關於字符串
其中bytes屬於不可變的
bytearray 可通過obj[n] = m,n和m都是整型,m不能大於255,不能小於0
Python中eval的強大與危害