Những công cụ dòng lệnh đa dạng của Python
(pythonmorsels.com)- 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
webbrowsertừ 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
- Ví dụ, khi chạy module
- 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
antigravitysẽ 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ư
antigravitylà 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
- Một số module có hành vi ngay tại thời điểm import; ví dụ module
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ảnpython -m webbrowser: mở trình duyệt webpython -m json.tool: định dạng dữ liệu JSON đẹp hơnpython -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 CLIuuidgenpython3.12 -m sqlite3: tương tự tiện ích CLIsqlite3python -m zipfile: tương tự tiện ích CLI zip & unzippython -m gzip: tương tự tiện ích CLI gzip & gunzippython -m tarfile: tương tự tiện ích CLItar
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ứ bapython -m venv: tạo môi trường ảopython -m pdb: chạy trình gỡ lỗi Pythonpython -m unittest: chạy kiểm thửunittestpython -m pydoc: xem tài liệupython -m doctest: chạydoctestcho tệp được chỉ địnhpython -m ensurepip: cài đặtpippython -m idlelib: chạy REPL đồ họa IDLEpython -m zipapp: chuyển module Python thành tệp ZIP có thể thực thipython -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 tokenpython -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 bytecodepython -m inspect: kiểm tra mã nguồn của đối tượng Pythonpython -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 webpython -m turtledemo: hiển thị demo nhiều hình vẽ khác nhau có thể tạo bằng moduleturtle
Các công cụ khác liên quan đến Python
python -m asyncio: chạy REPL Python có hỗ trợasynciopython -m cProfile: profile chương trình Pythonpython -m pstats: xem thống kê profile được tạo bởicProfilepython -m pickle: xem nội dung tệppickle(mức cao)python -m pickletools: phân rã tệppickle(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 Pythonpython -m site: xem thông tin "site" của Pythonpython -m sysconfig: xem chi tiết cấu hình Pythonpython -m platform: xem thông tin nền tảng hiện tạipython -m mimetypes: xem thông tin mimetype/phần mở rộng của tệppython -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ụcpython -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.