python3-cookbook中每個小節以問題、解決方案和討論三個部分探討了Python3在某類問題中的最優解決方式,或者說是探討Python3本身的數據結構、函數、類等特性在某類問題上如何更好地使用。這本書對於加深Python3的理解和提升Python編程能力的都有顯著幫助,特別是對怎麼提高Py ...
python3-cookbook中每個小節以問題、解決方案和討論三個部分探討了Python3在某類問題中的最優解決方式,或者說是探討Python3本身的數據結構、函數、類等特性在某類問題上如何更好地使用。這本書對於加深Python3的理解和提升Python編程能力的都有顯著幫助,特別是對怎麼提高Python程式的性能會有很好的幫助,如果有時間的話強烈建議看一下。
本文為學習筆記,文中的內容只是根據自己的工作需要和平時使用寫了書中的部分內容,並且文中的示例代碼大多直接貼的原文代碼,當然,代碼多數都在Python3.6的環境上都驗證過了的。不同領域的編程關註點也會有所不同,有興趣的可以去看全文。
python3-cookbook:https://python3-cookbook.readthedocs.io/zh_CN/latest/index.html
13.7 複製或者移動文件和目錄
在使用shutil.copytree進行文件夾的拷貝時,可以使用它的ignore參數來指定忽略的規則,參數值可以是一個函數,此函數接受一個目錄名和文件名列表並返回要忽略的名稱列表,也可以是shutil.ignore_patterns指定的忽略規則。
def ignore_pyc_files(dirname, filenames): return [name in filenames if name.endswith('.pyc')] shutil.copytree(src, dst, ignore=ignore_pyc_files) shutil.copytree(src, dst, ignore=shutil.ignore_patterns('*~', '*.pyc'))
13.8 創建和解壓歸檔文件
如果只是簡單的解壓或者壓縮文檔,使用shutil.unpack_archive和shutil.make_archive就可以了。
>>> import shutil >>> shutil.unpack_archive('Python-3.3.0.tgz') >>> shutil.make_archive('py33','zip','Python-3.3.0') '/Users/beazley/Downloads/py33.zip' >>> >>># 支持的格式如下 >>> shutil.get_archive_formats() [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('zip', 'ZIP file')] >>>
13.10 讀取配置文件
對於配置數據,特別是用戶配置數據,應該記錄在專門的配置文件中,比如ini文件,對於ini文件,可以使用內置的configparser模塊來進行讀寫。
這裡只是列了些簡單的讀寫操作,關於configparser模塊更多信息,可以查看官方文檔,或者可以參考下我的筆記:https://www.cnblogs.com/guyuyun/p/10965125.html
config.ini文件內容如下:
; config.ini ; Sample configuration file [installation] library=%(prefix)s/lib include=%(prefix)s/include bin=%(prefix)s/bin prefix=/usr/local # Setting related to debug configuration [debug] log_errors=true show_warnings=False [server] port: 8080 nworkers: 32 pid-file=/tmp/spam.pid root=/www/root signature: ================================= Brought to you by the Python Cookbook =================================
讀取配置文件:
>>> from configparser import ConfigParser >>> cfg = ConfigParser() >>> cfg.read('config.ini') ['config.ini'] >>> cfg.sections() ['installation', 'debug', 'server'] >>> cfg.get('installation','library') '/usr/local/lib' >>> cfg.getboolean('debug','log_errors') True >>> cfg.getint('server','port') 8080 >>> cfg.getint('server','nworkers') 32 >>> print(cfg.get('server','signature')) \================================= Brought to you by the Python Cookbook \================================= >>>
修改配置文件:
>>> cfg.set('server','port','9000') >>> cfg.set('debug','log_errors','False') >>> import sys >>> cfg.write(sys.stdout) # 如果想將修改內容更新到文件中,將這裡的sys.stdout替換為對應文件即可
13.15 啟動一個WEB瀏覽器
webbrowser模塊能被用來啟動一個瀏覽器,並且與平臺無關。預設使用系統預設的瀏覽器,其他支持的瀏覽器可以查看官方文檔。
>>> import webbrowser >>> webbrowser.open('http://www.python.org') # 以預設瀏覽器打開url True >>> webbrowser.open_new('http://www.python.org') # 在一個新的瀏覽器視窗打開url True >>> webbrowser.open_new_tab('http://www.python.org') # 在瀏覽器的新標簽中打開url True >>> c = webbrowser.get('firefox') # 使用指定的瀏覽器打開url >>> c.open('http://www.python.org') True