1.可讀性高: 不熟悉這個項目的代碼的人,一眼就能看懂目錄結構,知道程序啓動腳本是哪一個,測試目錄在哪兒,配置文件在哪兒等等。從而很是快速的瞭解這個項目。數據庫
2.可維護性高: 定義好組織規則後,維護者就能很明確地知道,新增的哪一個文件和代碼應該放在什麼目錄之下。這個好處是,隨着時間的推移,代碼/配置的規模增長,項目結構不會混亂,仍然可以組織良好。json
關於如何組織一個較好的Python工程目錄結構,已經有一些獲得了共識的目錄結構。單元測試
假設你的項目名爲ATM測試
ATM/ |-- bin/ | |-- __init__
| |-- start.py | |-- core/
| |-- tests/
| | |-- __init__.py
| | |-- test.main.py
| | | |-- __init__.py | |-- test_main.py| | |-- conf/ | |-- __init__.py | |-- setting.py
|
|---db/ | |--db.json
| |-- docs/
| |-- lib/
| |-- __init__.py
| |-- common.py
|
|-- log/
| |-- access.log
|
|-- __init__.py |-- README
bin/
: 存放項目的一些可執行文件,固然你能夠起名script/
之類的也行,但bin/更直觀。易懂core/
: 存放項目的全部源代碼。(1) 源代碼中的全部模塊、包都應該放在此目錄。不要置於頂層目錄。 (2) 其子目錄tests/
存放單元測試代碼; (3) 程序的入口最好命名爲main.py
。docs/
: 存放一些文檔。README
: 項目說明文件。注:運行程序時,在bin目錄下執行start.py代碼,不能夠直接執行core下的模塊。spa