ผมขอแนะนำโมดูล envoy เป็นโมดูลที่ช่วยให้รันคำสั่งภายนอกแล้วส่งค่ากลับมายังไพทอนได้อย่างง่าย ๆ โดยโมดูล envoy นี้จะทำการแปลคำสั่งไปเป็นคำสั่งของไลบรารี subprocess อีกที
ใช้ License: MIT
รองรับทั้ง Python 2 และ Python 3
สามารถติดตั้งได้โดยใช้คำสั่ง pip:
pip install envoy
การใช้งาน
ให้ import โมดูลเข้ามา
[python]import envoy[/python]
ตัวอย่างการใช้งาน
เนื่องจากโมดูลนี้ไม่มีเอกสารการใช้งานแบบซับซ้อนเหมือนโมดูลตัว ๆ อื่น ทางผู้พัฒนาโมดูล envoy จึงได้ยกตัวอย่างการใช้งานมาครับ
[python]
>>> r = envoy.run('git config', data='data to pipe in', timeout=2) # คำสั่ง ข้อมูล และเวลารอ
>>> r.status_code
129
>>> r.std_out # ดึงค่าที่แสดงผลออกมาทางคอมมานด์ไลน์
'usage: git config [options]'
>>> r.std_err # หากมีข้อผิดพลาด
''
[/python]
อีกตัวอย่าง
[python]
>>> r = envoy.run('uptime | pbcopy')
>>> r.command
'pbcopy'
>>> r.status_code
0
>>> r.history
[<Response 'uptime'>]
[/python]
เมื่อนำมาใช้งานจริง
[python]
>>> import envoy
>>> r = envoy.run('ping wannaphong.com')
>>> print(r.std_out)
Pinging wannaphong.com [104.24.97.245] with 32 bytes of data:
Reply from 104.24.97.245: bytes=32 time=493ms TTL=55
Reply from 104.24.97.245: bytes=32 time=390ms TTL=55
Reply from 104.24.97.245: bytes=32 time=104ms TTL=55
Reply from 104.24.97.245: bytes=32 time=99ms TTL=55
Ping statistics for 104.24.97.245:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 99ms, Maximum = 493ms, Average = 271ms
>>> r.command
['ping', 'wannaphong.com']
>>> r.status_code
0
[/python]
หน้าเว็บโมดูล envoy https://github.com/kennethreitz/envoy
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)