Python Programming Tips
- 隨時關注Python最新版本的變動,新的功能與函數可能會大大提升你的開發效率
- 將with與 .open() 與.close()配合使用,便於代碼debug。
由於文件讀寫時都有可能產生IOError,一旦出錯,後面的f.close()就不會調用。所以,為了保證無論是否出錯都能正確地關閉文件,我們可以使用try ... finally來實現:
try:n f = open(/path/to/file, r)n print(f.read())nfinally:n if f:n f.close()n
Python 對一些內建對象進行改進,加入了對上下文管理器的支持,可以用於 with 語句中,比如可以自動關閉文件、線程鎖的自動獲取和釋放等。這裡使用了 with 語句,不管在處理文件過程中是否發生異常,都能保證 with 語句執行完畢後已經關閉了打開的文件句柄。引入with,代碼更加簡潔:
with open(/path/to/file, r) as f:n print(f.read())n
- 為每個項目加入virtualenv 虛擬環境,不要在原始系統安裝python庫,這將使你的每個項目高度獨立可重複,同時可以避免重複安裝各種庫之間的版本問題。
安裝
sudo pip install virtualenvn
創建ENV文件夾
virtualenv ENVn
激活環境,安裝庫
source bin/activatenpip install xxxn
脫離環境
deactivaten
- 使用csv模塊來處理解析.csv文件
讀
import csvnwith open(some.csv, newline=) as f:n reader = csv.reader(f)n for row in reader:n print(row)n
寫
import csvnwith open(some.csv, w, newline=) as f:n writer = csv.writer(f)n writer.writerows(someiterable)n
- 當你需要對循環的對象計數時,使用enumerate
count = 0nfor index, line in enumerate(open(filepath,r)): n count += 1n
- 當你正在使用IDE編程(Pycharm)時請花點時間了解它的特性. 特別是如何使用debugger,如何設置斷點以及單步執行代碼
最全Pycharm教程(3)--代碼的調試、運行 - 陳俊嶺的程序員之路 - CSDN博客
- 根據你的目標合理使用多進程
multiprocessing
與多線程threading
multiprocessing 多進程教程系列
16.6. multiprocessing - Process-based 「threading」 interface - Python 2.7.14 documentation
- ipython或者Jupyter等互動式解釋器配合IDE進行開發。 ipython和Jupyter有像%time和%prun這樣有用的魔法命令,使得編寫函數更加容易測試、修改。
27個Jupyter Notebook小提示與技巧
- 儘可能避免使用*args與**kwargs,除非你真的需要它們。不必要的參數引入會降低代碼的可讀性與完整性。
歡迎補充,待續~
推薦閱讀:
※初學 Python,有哪些 Pythonic 的源碼推薦閱讀?
※如何在mac版本的python里安裝pip?
※十分鐘快速入門 Pandas