
Python 最一開始被廣泛接受,就是作為強大的「腳本語言 (Scripting Language)」。對於系統管理員或 DevOps 工程師來說,Python 是用來取代 Shell Script 的最佳利器。
1. 打造專業的 CLI 工具:argparse
如果你還在用 sys.argv[1] 來讀取參數,那就太落伍了。argparse 能讓你輕鬆定義參數、說明文件與型別檢查。
# my_tool.py
import argparse
def main():
parser = argparse.ArgumentParser(description="這是一個超酷的檔案處理工具")
# 位置參數 (必填)
parser.add_argument("filename", help="要處理的檔案名稱")
# 選項參數 (選填)
parser.add_argument("-c", "--count", type=int, default=1, help="重複次數")
parser.add_argument("-v", "--verbose", action="store_true", help="顯示詳細輸出")
args = parser.parse_args()
if args.verbose:
print(f"正在處理 {args.filename}...")
for _ in range(args.count):
print(f"Processing {args.filename}")
if __name__ == "__main__":
main()
執行結果:
$ python my_tool.py data.txt -c 3 -v
正在處理 data.txt...
Processing data.txt
Processing data.txt
Processing data.txt
$ python my_tool.py -h
# 自動顯示漂亮的 Help 訊息
2. 現代化路徑處理:pathlib
請忘記 os.path.join 吧!Python 3.4 引入的 pathlib 讓路徑操作變得像物件導向一樣優雅。
from pathlib import Path
# 取得當前目錄
p = Path(".")
# 遍歷所有 .py 檔案
for file in p.glob("*.py"):
print(file.name)
# 路徑拼接
data_folder = p / "data" / "raw"
# 自動處理 Windows (\) 與 Mac/Linux (/) 的差異
# 讀寫檔案超簡單
new_file = data_folder / "test.txt"
if not new_file.parent.exists():
new_file.parent.mkdir(parents=True) # 自動建立父目錄
new_file.write_text("Hello Pathlib!", encoding="utf-8")
print(new_file.read_text(encoding="utf-8"))
3. 呼叫系統指令:subprocess
有時候我們需要呼叫外部指令 (如 ls, git, docker)。subprocess.run 是你的好朋友。
import subprocess
# 執行 'ls -l' (Mac/Linux)
result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
if result.returncode == 0:
print("指令執行成功!輸出如下:")
print(result.stdout)
else:
print("指令失敗!錯誤如下:")
print(result.stderr)
4. 總結
掌握了這些工具,你就可以寫出各種自動化腳本:
- argparse: 讓腳本好用。
- pathlib: 讓檔案操作優雅。
- subprocess: 讓 Python 成為系統指揮官。
下一章,我們將進入辦公室自動化領域——用 Python 操控 Excel 報表!
延伸閱讀: