16 điểm bởi xguru 2023-06-30 | 3 bình luận | Chia sẻ qua WhatsApp
  • Thư viện chuẩn của Python có bao gồm các công cụ CLI ẩn có thể chạy từ terminal
    • Có thể dùng gzip như python -m gzip --decompress pypi.db.gz
  • Lý do là nếu một mô-đun Python có khối if __name__ == "__main__" thì có thể chạy bằng python -m tên_mô_đun
  • Một số mô-đun có thể tận dụng theo cách này
    • python -m http.server 8001
    • python -m asyncio cho phép dùng top-level await trong console Python
    • python -m tokenize cgi.py | head -n 10 chế độ debug của tokenizer Python
    • python -m ast cgi.py | head -n 10 chế độ debug AST
    • python -m json.tool có thể pretty-print JSON
    • python -m nntplib mặc định hiển thị các bài mới nhất của nhóm tin gmane.comp.python.general (đáng tiếc là không dùng được với nhóm khác)
    • python -m calendar in lịch của năm nay, cũng có thể xuất HTML bằng -t html
  • Ngoài ra, trong thư viện chuẩn của Python còn ẩn rất nhiều công cụ nhỏ thú vị khác

3 bình luận

 
botplaysdice 2023-06-30

Máy chủ web khá hữu dụng. Ở công ty, nếu chuyển bằng scp thì bị throttle rất nặng (chắc là vì bảo mật thôi;;;), truy cập Samba cũng cực kỳ chậm nữa.... lúc cần tải file lớn thì dùng máy chủ web Python....

 
mckabi 2023-06-30
  • python -m base64 : echo "test string" | python -m base64 -e | python -m base64 -d
  • python -m imghdr IMAGE_FILENAME
  • python -m sndhdr SOUND_FILENAME
  • tarfile, gzip, zip
  • locale, platform, sysconfig
  • python -m inspect PYTHON_PKG

Đôi khi cũng có lúc những thứ này tỏ ra hữu ích.

 
GN⁺ 2023-06-30
Ý kiến trên Hacker News
  • Công cụ re.Scanner trong thư viện chuẩn Python là một tokenizer dựa trên biểu thức chính quy bị thiếu trong tài liệu chính thức.
  • Công cụ này xử lý danh sách token trong một lần và đảm bảo các khớp nối tiếp nhau.
  • Dùng khối if __name__ == "__main__": cho phép chạy module như một tệp *.py độc lập.
  • Python 3.12 dự kiến sẽ bao gồm SQLite CLI/REPL trong thư viện chuẩn.
  • Module zipfile có thể được dùng từ dòng lệnh để giải nén và nén tệp zip.
  • Module json.tool có thể được dùng từ dòng lệnh để in JSON đẹp mắt.
  • Module http.server hữu ích để chia sẻ tệp trên mạng cục bộ.
  • Việc dùng các module của thư viện chuẩn từ dòng lệnh có thể tiềm ẩn rủi ro bảo mật.
  • Thư viện chuẩn Python có nhiều công cụ và tính năng ẩn chưa được tài liệu hóa.