這些是 Python 最實用的通用命令列工具。

CommandPurposeMore
python -m http.server啟動簡易網頁伺服器Video
python -m webbrowser開啟預設瀏覽器Docs
python -m json.tool以更易讀的格式輸出 JSON 資料Docs
python -m calendar顯示命令列月曆Docs

http.server

http.server 模組以腳本執行後,會在 8000 埠啟動一個 web server,並提供目前目錄中的檔案。我常常用它來預覽 Sphinx 文件網站(尤其是使用 dirhtml 選項時,會以 index.html 的子目錄結構呈現)。

$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

webbrowser

webbrowser 模組以腳本執行時,會用預設瀏覽器開啟指定 URL。例如,這會開啟 https://pseudorandom.name

$ python -m webbrowser pseudorandom.name

json.tool

json.tool 模組可以當作腳本執行,會解析 JSON 文件並輸出更適合人閱讀的格式。

$ python -m json.tool /home/trey/Downloads/download.json
[
    {
        "title": "Python's walrus operator",
        "is_premium": false,
        "url": "/using-walrus-operator/"
    },
    {
        "title": "Refactoring long boolean expressions",
        "is_premium": true,
        "url": "/refactoring-boolean-expressions/"
    }
]

calendar

calendar 模組以腳本執行時,預設會輸出當年的月曆,也可以透過參數自訂輸出。以下是只顯示某一個月份的範例:

$ python -m calendar 2024 04
     April 2024
Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

以上 4 個腳本是我覺得在任何機器上都很有用的通用工具。Python 也包含許多在 Linux 與 Mac 上常見(或容易安裝)的工具。

在 Windows 機器上特別實用

在 Windows 上使用 Python?或者在 Linux/Mac 上使用 Python,但無法輕易安裝 uuidsqlite3gzip 等常見命令列工具?

以下工具都相當於 Linux 上常見的命令列工具,不過 Linux 原生工具通常更強大也更好用。

CommandPurposeMore
python3.12 -m uuid類似 uuidgen CLI 工具Docs
python3.12 -m sqlite3類似 sqlite3 CLI 工具Docs
python -m zipfile類似 zipunzip CLI 工具Docs
python -m gzip類似 gzipgunzip CLI 工具Docs
python -m tarfile類似 tar CLI 工具Docs
python -m base64類似 base64 CLI 工具
python -m ftplib類似 ftp 工具
python -m smtplib類似 sendmail 工具
python -m poplib類似用 curl 讀取電子郵件
python -m imaplib類似用 curl 讀取電子郵件
python -m telnetlib類似 telnet 工具

分析 Python 程式碼

Python 也內建一些專門用於分析 Python 程式碼的工具。

如果你想分析 Python 程式碼的運作方式,這些工具會很有幫助。

CommandPurposeMore
python -m tokenize將 Python 模組分解為 “tokens”Docs
python -m ast顯示程式碼的抽象語法樹Docs
python -m dis將 Python 程式碼反組譯成 bytecodeDocs
python -m inspect檢視 Python 物件的原始碼Docs
python -m pyclbr查看模組中物件的概覽

只是好玩

這些是 Python 的彩蛋腳本。

CommandPurpose
python -m __hello__印出 Hello world!
python -m this顯示 Zen of Python (PEP 20)
python -m antigravity在瀏覽器開啟 XKCD 353
python -m turtledemo顯示 turtle 模組示範