close
13.1 fileinput: 用法很簡單,就 fileinput.input(),他會傳回一個 file descriptor,操作就跟一般的檔案一樣。使用 fileinput 的好處是他會自動處理參數有多檔案以及 stdin 的情況。這個模組 2.x 跟 3.x 都有,但 2.x 還不支援 context manager,3.x 才支援,因此 2.x 裡沒辦法用 with。fileinput 模組本身的說明跟例子就很清楚,更詳細的用法可以看 PyMOTW - fileinput – Process lines from input streams
13.2 raise SystemExit(): 這還蠻好用的,你可以帶訊息 raise SystemExit("failed."),也可以帶數字 raise SystemExit(10)。帶字串的話,會自動印出錯誤訊息,然後離開程式,program return value 會是 1。帶數字的話,一樣也是離開,但沒有訊息,program return value 就是指定的數字。根據 Built-in Exceptions 裡的說明,呼叫 sys.exit() 就會丟出這個例外,所以看起來直接 raise 會比 sys.exit() 稍稍快一點點。
13.3 介紹 argparse 模組,這是 python 用來處理參數的模組,在網路上還可以看到 optparse,但現在已經建議都改用 argparse 了。
13.4 輸入密碼,可以使用 getpass 模組裡的 getuser()/getpass() 函式來取得帳號跟密碼。作者提醒 getuser() 不會顯示提示字串,可以自己先用 print() 輸出。
13.5 取得 terminal 視窗的寬跟高:os.terminal_size()
13.6 取得外部程式的輸出,這是介紹 subprocess 模組裡的 check_output() 。比較特殊的處理可以用 Popen() 去接 stdout 跟 stderr。
13.7 複製與移動目錄或檔案:介紹 shutil ,這個模組裡包含了很多方便的函式來處理跟 shell 相關的事情。這一節介紹的是 copy, copy2, copytree, move 。
13.8 建立/解壓 tarball:也是 shutil,介紹的是 unpack_archive, make_archive
arrow
arrow

    elleryq 發表在 痞客邦 留言(0) 人氣()