16 คะแนน โดย xguru 2023-06-30 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • ในไลบรารีมาตรฐานของ Python มีเครื่องมือ CLI ที่ซ่อนอยู่ซึ่งสามารถรันจากเทอร์มินัลได้
    • สามารถใช้ gzip ได้ เช่น python -m gzip --decompress pypi.db.gz
  • เพราะถ้าโมดูล Python มีบล็อก if __name__ == "__main__" ก็จะสามารถรันด้วย python -m ชื่อโมดูล ได้
  • ตัวอย่างบางส่วนของโมดูลที่ใช้งานแบบนี้ได้
    • python -m http.server 8001
    • python -m asyncio ทำให้ใช้ top-level await ได้ในคอนโซล Python
    • python -m tokenize cgi.py | head -n 10 โหมดดีบักของ Python tokenizer
    • python -m ast cgi.py | head -n 10 โหมดดีบัก AST
    • python -m json.tool ใช้ pretty print JSON ได้
    • python -m nntplib จะแสดงโพสต์ล่าสุดของกลุ่มข่าว gmane.comp.python.general โดยค่าเริ่มต้น (น่าเสียดายที่ใช้กับกลุ่มอื่นไม่ได้)
    • python -m calendar แสดงปฏิทินของปีนี้ และสามารถแสดงเป็น HTML ได้ด้วย -t html
  • นอกจากนั้น ในไลบรารีมาตรฐานของ Python ยังมีเครื่องมือเล็ก ๆ เจ๋ง ๆ ซ่อนอยู่อีกมากมาย

3 ความคิดเห็น

 
botplaysdice 2023-06-30

เว็บเซิร์ฟเวอร์นี่ใช้ได้ค่อนข้างมีประโยชน์เลยครับ ที่บริษัทถ้าย้ายไฟล์ด้วย scp จะโดน throttle หนักมาก (น่าจะเพื่อความปลอดภัยนั่นแหละ;;;), การเข้าถึงผ่าน Samba ก็ช้ามากด้วย.... ตอนต้องรับไฟล์ใหญ่ ๆ ก็ใช้เว็บเซิร์ฟเวอร์ของ 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

บางครั้งมันก็มีช่วงที่อยากให้มีแบบนี้อยู่เหมือนกัน

 
GN⁺ 2023-06-30
ความคิดเห็นจาก Hacker News
  • เครื่องมือ re.Scanner ในไลบรารีมาตรฐานของ Python เป็นโทเคไนเซอร์แบบอิง regular expression ที่ตกหล่นจากเอกสารทางการ
  • เครื่องมือนี้ประมวลผลรายการโทเคนในครั้งเดียวและรับประกันการจับคู่ที่ต่อเนื่องกัน
  • การใช้บล็อก if __name__ == "__main__": ทำให้สามารถรันโมดูลเป็นไฟล์ *.py เดี่ยวได้
  • Python 3.12 มีกำหนดจะรวม SQLite CLI/REPL ไว้ในไลบรารีมาตรฐาน
  • โมดูล zipfile สามารถใช้แตกไฟล์และบีบอัดไฟล์ zip ได้จากบรรทัดคำสั่ง
  • โมดูล json.tool สามารถใช้แสดงผล JSON แบบอ่านง่ายได้จากบรรทัดคำสั่ง
  • โมดูล http.server มีประโยชน์สำหรับการแชร์ไฟล์บนเครือข่ายภายใน
  • การใช้โมดูลในไลบรารีมาตรฐานจากบรรทัดคำสั่งอาจมีความเสี่ยงด้านความปลอดภัย
  • ในไลบรารีมาตรฐานของ Python ยังมีเครื่องมือและความสามารถที่ซ่อนอยู่อีกมากซึ่งไม่ได้มีการจัดทำเอกสาร