好文分享 — Python's many command-line utilities
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
我知道 python 有模組可以用 -m
參數直接變成命令列工具使用,但我是認真沒想到 Python 有「非常多」模組都可以使用 -m
參數,甚至還有彩蛋!
p.s. 解釋一下 -m
的作用, -m
會讓 Python 執行模組的 if __name__ == '__main__':
區塊或 __main__.py
檔。
例如:
輸入 python -m antigravity
就會使用瀏覽器打開 XKCD 關於 Python 的經典漫畫:
「你為什麼可以飛?」
『因為我用 Python 』
輸入 python -m __hello__
會顯示 Hello World!
。
輸入 echo "hello" | python -m encodings.rot_13
會把 “hello” 用 ROT13 方式加密。
p.s. ROT13 是凱薩加密/凱薩密碼的變種,偏移量為 13
其他還有:
- Python 3.12 可以使用
python -m uuid
產生 1 組 UUID 。 python -m ensurepip
,如果開發環境沒有 pip 就會安裝 pip 。python -m dis
可以把 python script 變成 bytecode, 做效能研究時很好用!python -m pyclbr <module name>
可以印出模組所有的 methods 。python -m asyncio
可以打開 asyncio 版的 REPL(Read-Eval-Print Loop), 我們不需要再用asyncio.run()
執行 coroutine, 可以直接用await
執行 coroutine, 超級實用!python -m filecmp dir1 dir2
可以比較 dir1 與 dir2 的檔案差異(僅比較檔名)
這些用法都整理在 “Python’s many command-line utilities” 裡,有興趣可以閱讀一下!