25 điểm bởi xguru 2024-06-05 | 2 bình luận | Chia sẻ qua WhatsApp
  • 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

 
han905 2024-06-11

Wow, nhiều tính năng hay hơn mình tưởng đấy, tuyệt

 
dhy0613 2024-06-05

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 module python -m zipfile rồi tiếp tục công việc.