1、Json與pickle
json數據序列化:
# Author: Mr.Xue
# 2019.10.24
import json
info = {
'name': 'xue',
'age': 23
}
with open("test.txt", 'w') as f:
f.write(json.dumps(info))
json數據反序列化:
# Author: Mr.Xue
# 2019.10.24
import json
with open("test.txt", 'r') as f:
data = json.loads(f.read())
print(data["age"])
pickle數據序列化:
# Author: Mr.Xue
# 2019.10.24
import pickle
def sayhi(name):
print("hello, ", name)
info = {
'name': 'xue',
'age': 23,
"func": sayhi
}
with open("test.txt", 'wb') as f:
f.write(pickle.dumps(info)) # pickle.dump(info, f)
pickle數據反序列化:
# Author: Mr.Xue
# 2019.10.24
import pickle
def sayhi(name):
print("hello2, ", name)
with open("test.txt", 'rb') as f:
data = pickle.loads(f.read()) #data = pickle.load(f)
print(data["func"]("Mr.Xue"))
小結:
- json只能處理dic、list、str等簡單的數據類型
- pickle能夠處理函數這些複雜的類型
2、軟件目錄結構規範
我們設計一個層次清晰的目錄結構,就是爲了達到以下兩點:
- 可讀性高:不熟悉這個項目的代碼的人,一眼就看懂目錄結構,知道程序啓動腳本是哪個,測試目錄在哪裏,配置文件在哪裏等等。從而非常快速的瞭解這個項目。
- 可維護性高:定義好組織規則後,維護者就能夠很明確的知道,新增的哪個文件和代碼應該放在什麼目錄之下。這個好處是,隨着時間的推移,代碼/配置的規模增加,項目結構不會混亂,仍然能夠組織良好。
下面有一個項目的目錄結構供參考,
簡單解釋一下:
- bin/:存放項目的一些可執行文件,當然你可以起名script/之類的也可以。
- foo/:存放項目的所有源代碼。(1)源代碼中的所有模塊、包都應該放在此目錄。不要置於頂層目錄;(2)其子目錄test/存放單元測試代碼;(3)程序的入口最好命名爲main.py
- docs/:存放一些文檔
- setup.py:安裝、部署、打包的腳本
- requirements.txt:存放軟件依賴的外部Python包列表
- README:項目說明文件
關於README的內容,它需要說明以下幾個事項:
- 軟件定位,軟件的基本功能
- 運行代碼的方法:安裝環境、啓動命令等
- 簡要的使用說明
- 代碼目錄結構說明,更詳細點可以說明軟件的基本原理
- 常見問題說明
可以參考Redis源碼中Readme Readme的寫法,這裏面簡潔但是清晰的描述了Redis功能和源碼結構。
具體可參考:https://www.cnblogs.com/alex3714/articles/5765046.html