เครื่องมือบรรทัดคำสั่งหลากหลายแบบของ Python
(pythonmorsels.com)- โมดูลของ Python สามารถใช้งานเป็นเครื่องมือบรรทัดคำสั่งได้
- ตัวอย่างเช่น หากรันโมดูล
webbrowserจากบรรทัดคำสั่ง ก็สามารถเปิด URL ที่กำหนดผ่านเว็บเบราว์เซอร์เริ่มต้นได้ - ในไลบรารีมาตรฐานของ Python มีโมดูลแบบลูกผสมระหว่างโมดูลกับสคริปต์ลักษณะนี้อยู่มากมาย
- ตัวอย่างเช่น หากรันโมดูล
- เมื่อรัน Python ด้วยออปชัน
-mจะเป็นการรันโมดูล Python ที่กำหนดเหมือนกับเป็นสคริปต์- บางโมดูลจะทำบางอย่างทันทีตอนถูก import เช่น โมดูล
antigravityจะเปิดการ์ตูน XKCD ในเว็บเบราว์เซอร์ และเมื่อรันจากบรรทัดคำสั่งก็จะได้ผลเหมือนกับการ import โมดูลนั้น - สิ่งนี้เรียกว่า
import side effectซึ่งโมดูลส่วนใหญ่จะพยายามหลีกเลี่ยง โดยโมดูล easter egg อย่างantigravityถือเป็นข้อยกเว้น - โมดูลที่หลีกเลี่ยง import side effect จะใช้ตัวแปร
__name__เพื่อให้ทำงานต่างกันระหว่างตอนถูก import เป็นโมดูลกับตอนถูกรันเป็นสคริปต์
- บางโมดูลจะทำบางอย่างทันทีตอนถูก import เช่น โมดูล
เครื่องมือบรรทัดคำสั่งเอนกประสงค์ที่มีประโยชน์
python -m http.server: เริ่มต้นเว็บเซิร์ฟเวอร์แบบง่ายpython -m webbrowser: เปิดเว็บเบราว์เซอร์python -m json.tool: จัดรูปแบบข้อมูล JSON ให้อ่านง่ายpython -m calendar: แสดงปฏิทินบนบรรทัดคำสั่ง
เครื่องมือที่มีประโยชน์มากเป็นพิเศษบน Windows
python3.12 -m uuid: คล้ายกับยูทิลิตี CLIuuidgenpython3.12 -m sqlite3: คล้ายกับยูทิลิตี CLIsqlite3python -m zipfile: คล้ายกับยูทิลิตี CLI สำหรับ zip และ unzippython -m gzip: คล้ายกับยูทิลิตี CLI สำหรับ gzip และ gunzippython -m tarfile: คล้ายกับยูทิลิตี CLItar
เครื่องมือที่มีประโยชน์เมื่อต้องทำงานกับโค้ด Python
python -m pip: ติดตั้งแพ็กเกจ Python จากบุคคลที่สามpython -m venv: สร้าง virtual environmentpython -m pdb: รันดีบักเกอร์ของ Pythonpython -m unittest: รันการทดสอบ unittestpython -m pydoc: ดูเอกสารpython -m doctest: รัน doctest ของไฟล์ที่กำหนดpython -m ensurepip: ติดตั้ง pippython -m idlelib: รัน REPL แบบกราฟิกของ IDLEpython -m zipapp: แปลงโมดูล Python เป็น ZIP ที่รันได้python -m compileall: คอมไพล์ไฟล์ Python ล่วงหน้าเป็น bytecode
เครื่องมือวิเคราะห์โค้ด Python
python -m tokenize: แยกโมดูล Python ออกเป็นโทเค็นpython -m ast: แสดง abstract syntax tree ของโค้ดpython -m dis: disassemble โค้ด Python เป็น bytecodepython -m inspect: ตรวจสอบซอร์สโค้ดของอ็อบเจ็กต์ Pythonpython -m pyclbr: ดูภาพรวมของอ็อบเจ็กต์ต่าง ๆ ในโมดูล
สคริปต์สนุก ๆ ที่ทำงานเป็น easter egg ของ Python
python -m __hello__: แสดงผล "Hello world!"python -m this: แสดง The Zen of Python (PEP 20)python -m antigravity: เปิดการ์ตูน XKCD หมายเลข 353 ที่เกี่ยวกับ Python ในเว็บเบราว์เซอร์python -m turtledemo: แสดงเดโมภาพวาดหลากหลายแบบที่วาดได้ด้วยโมดูลturtle
เครื่องมืออื่น ๆ ที่เกี่ยวข้องกับ Python
python -m asyncio: รัน REPL ของ Python ที่รองรับ asynciopython -m cProfile: ทำ profiling โปรแกรม Pythonpython -m pstats: ดูสถิติโปรไฟล์ที่สร้างโดย cProfilepython -m pickle: ดูเนื้อหาของไฟล์ pickle (ระดับสูง)python -m pickletools: แยกวิเคราะห์ไฟล์ pickle (ระดับต่ำ)
เครื่องมือที่มีประโยชน์น้อยกว่า
python -m timeit: วัดเวลาการทำงานของ expression ใน Pythonpython -m site: ดูข้อมูลsiteของ Pythonpython -m sysconfig: ดูรายละเอียดการตั้งค่าของ Pythonpython -m platform: ดูข้อมูลแพลตฟอร์มปัจจุบันpython -m mimetypes: ดูข้อมูล mimetype/นามสกุลไฟล์python -m quopri: เข้ารหัส/ถอดรหัสข้อมูลอีเมลแบบ rawpython -m filecmp: เปรียบเทียบเนื้อหาของไดเรกทอรี 2 แห่งpython -m tabnanny: ตรวจสอบการปนกันของแท็บและช่องว่างในไฟล์ Python
2 ความคิดเห็น
ว้าว มีฟีเจอร์ดี ๆ เยอะกว่าที่คิดนะ เจ๋ง
ผมจำได้ว่าเคยเอาไฟล์ zip เข้าไปในเซิร์ฟเวอร์ Linux ที่อยู่ในสภาพแวดล้อมเครือข่ายปิด แล้วดันไม่มีคำสั่ง
unzipเลยต้องแตกไฟล์ด้วยโมดูล
python -m zipfileแล้วค่อยทำงานต่อ