- Các module của Python có thể được dùng như công cụ dòng lệnh
- Ví dụ, khi chạy module
webbrowser từ dòng lệnh, bạn có thể mở URL được cung cấp bằng trình duyệt web mặc định
- Thư viện chuẩn của Python có rất nhiều module lai giữa module và script như vậy
- Khi chạy Python với tùy chọn
-m, Python sẽ thực thi module được chỉ định như một script
- Một số module có hành vi ngay tại thời điểm import; ví dụ module
antigravity sẽ mở truyện tranh XKCD trên trình duyệt web. Chạy nó từ dòng lệnh cũng có hiệu ứng giống hệt như import module đó
- Điều này được gọi là "import side effect", và đa số module đều tránh điều này. Các module easter egg như
antigravity là ngoại lệ
- Những module tránh import side effect sẽ dùng biến
__name__ để có hành vi khác nhau khi được import như module và khi được chạy như script
Các công cụ dòng lệnh đa dụng hữu ích
python -m http.server: khởi động một web server đơn giản
python -m webbrowser: mở trình duyệt web
python -m json.tool: định dạng dữ liệu JSON đẹp hơn
python -m calendar: hiển thị lịch trên dòng lệnh
Các công cụ đặc biệt hữu ích trên Windows
python3.12 -m uuid: tương tự tiện ích CLI uuidgen
python3.12 -m sqlite3: tương tự tiện ích CLI sqlite3
python -m zipfile: tương tự tiện ích CLI zip & unzip
python -m gzip: tương tự tiện ích CLI gzip & gunzip
python -m tarfile: tương tự tiện ích CLI tar
Các công cụ hữu ích khi làm việc với mã Python
python -m pip: cài đặt gói Python bên thứ ba
python -m venv: tạo môi trường ảo
python -m pdb: chạy trình gỡ lỗi Python
python -m unittest: chạy kiểm thử unittest
python -m pydoc: xem tài liệu
python -m doctest: chạy doctest cho tệp được chỉ định
python -m ensurepip: cài đặt pip
python -m idlelib: chạy REPL đồ họa IDLE
python -m zipapp: chuyển module Python thành tệp ZIP có thể thực thi
python -m compileall: biên dịch trước các tệp Python thành bytecode
Các công cụ phân tích mã Python
python -m tokenize: tách module Python thành các token
python -m ast: hiển thị cây cú pháp trừu tượng của mã
python -m dis: disassemble mã Python thành bytecode
python -m inspect: kiểm tra mã nguồn của đối tượng Python
python -m pyclbr: xem tổng quan về các đối tượng trong module
Những script thú vị hoạt động như easter egg của Python
python -m __hello__: in ra "Hello world!"
python -m this: in ra The Zen of Python (PEP 20)
python -m antigravity: mở truyện tranh XKCD số 353 liên quan đến Python trong trình duyệt web
python -m turtledemo: hiển thị demo nhiều hình vẽ khác nhau có thể tạo bằng module turtle
Các công cụ khác liên quan đến Python
python -m asyncio: chạy REPL Python có hỗ trợ asyncio
python -m cProfile: profile chương trình Python
python -m pstats: xem thống kê profile được tạo bởi cProfile
python -m pickle: xem nội dung tệp pickle (mức cao)
python -m pickletools: phân rã tệp pickle (mức thấp)
Các công cụ ít hữu ích hơn
python -m timeit: đo thời gian thực thi biểu thức Python
python -m site: xem thông tin "site" của Python
python -m sysconfig: xem chi tiết cấu hình Python
python -m platform: xem thông tin nền tảng hiện tại
python -m mimetypes: xem thông tin mimetype/phần mở rộng của tệp
python -m quopri: mã hóa/giải mã dữ liệu email thô
python -m filecmp: so sánh nội dung của 2 thư mục
python -m tabnanny: kiểm tra việc trộn tab và khoảng trắng trong tệp Python
2 bình luận
Wow, nhiều tính năng hay hơn mình tưởng đấy, tuyệt
Tôi nhớ có lần mang một file zip vào máy chủ Linux trong môi trường mạng cô lập, nhưng lại không có lệnh
unzip, nên đã giải nén bằng modulepython -m zipfilerồi tiếp tục công việc.