ค้นหาเว็บไซต์

เรียนรู้โมดูล Python Sys


ในบทความนี้ เราจะมาดู โมดูล Python Sys มีตัวแปรและฟังก์ชันที่ดูแลโดยล่าม และโมดูล sys ให้วิธีการโต้ตอบกับตัวแปรเหล่านั้น ตัวแปรเหล่านี้จะพร้อมใช้งานจนกว่าล่ามจะมีชีวิตอยู่ เราจะมาดูฟังก์ชั่นของระบบที่ใช้กันทั่วไปบางส่วนกัน

หากต้องการทำงานกับ โมดูล sys คุณต้องนำเข้า โมดูล ก่อน

sys.version – เก็บข้อมูลเกี่ยวกับเวอร์ชันปัจจุบันของ Python

python3
>>> import sys
>>> sys.version

sys.path – ตัวแปร Path เก็บเส้นทางไดเร็กทอรีในรูปแบบของรายการสตริง เมื่อใดก็ตามที่คุณนำเข้าโมดูลหรือรันโปรแกรมโดยใช้เส้นทางสัมพันธ์ ล่ามหลามจะค้นหาโมดูลหรือสคริปต์ที่จำเป็นโดยใช้ตัวแปรเส้นทาง

ดัชนีเส้นทางจัดเก็บไดเร็กทอรีที่มีสคริปต์ที่ใช้ในการเรียกใช้ล่าม Python ที่ดัชนี “ศูนย์” หากล่ามถูกเรียกใช้แบบโต้ตอบหรือหากอ่านสคริปต์จากอินพุตมาตรฐาน เส้นทาง[0] จะเป็นสตริงว่าง

>>> sys.path

เมื่อเรียกใช้สคริปต์ เส้นทาง[0] จะจัดเก็บเส้นทางไดเรกทอรี

vim 1.py
python3 1.py

หากคุณมีโมดูลในไดเร็กทอรีที่กำหนดเอง คุณสามารถเพิ่มเส้นทางไดเร็กทอรีให้กับตัวแปรพาธได้โดยใช้เมธอด path.append() (เนื่องจากพาธเป็นวัตถุรายการ เราจึงใช้เมธอดรายการ “ต่อท้าย ”)

python3
>>> import sys
>>> sys.path
>>> sys.path.append('/root/test/')
>>> sys.path

sys.argvargv ใช้เพื่อส่งอาร์กิวเมนต์รันไทม์ไปยังโปรแกรมหลามของคุณ Argv คือรายการที่เก็บชื่อสคริปต์เป็นค่าที่ 1 ตามด้วยอาร์กิวเมนต์ที่เราส่งผ่าน ค่า Argv จะถูกจัดเก็บเป็นสตริงประเภท และคุณต้องแปลงค่าดังกล่าวตามความต้องการของคุณอย่างชัดเจน

>>> sys.argv

เมื่อคุณเรียกใช้ตัวอย่างข้อมูลด้านล่าง ค่าสิ้นสุดของฟังก์ชันช่วงจะถูกส่งผ่าน sys.argv[1] เป็น 10 และค่าอื่นๆ อีกสองสามค่าจะถูกส่งผ่านเพื่อพิมพ์รายการ argv ด้วย ค่าต่างๆ ที่ส่วนท้ายของโปรแกรม

#!/usr/bin/python3

import sys

for x in range(1,int(sys.argv[1])):
    print(x)
    
Print all the arguments passed
print("Arguments passed:",sys.argv)

sys.executable – พิมพ์เส้นทางสัมบูรณ์ของไบนารีของล่าม Python

>>> sys.executable
'/usr/bin/python3'

sys.platform – พิมพ์ประเภทแพลตฟอร์มระบบปฏิบัติการ ฟังก์ชั่นนี้จะมีประโยชน์มากเมื่อคุณรันโปรแกรมโดยขึ้นอยู่กับแพลตฟอร์ม

>>> sys.platform
'linux'

sys.exit – ออกจากล่ามโดยเพิ่ม SystemExit(status) ตามค่าเริ่มต้น สถานะ ระบุว่าเป็น ศูนย์ และถือว่าสำเร็จ เราสามารถใช้ค่าจำนวนเต็มเป็น สถานะการออก หรือวัตถุประเภทอื่น ๆ เช่น string("failed ") ดังแสดงในตัวอย่างด้านล่าง

ด้านล่างตัวอย่าง จะมีการใช้ข้อมูลโค้ดเพื่อตรวจสอบว่าแพลตฟอร์มนั้นเป็น Windows หรือไม่ จากนั้นจึงเรียกใช้โค้ด ถ้าไม่เพิ่มฟังก์ชัน exit()

#!/usr/bin/python3

import sys

if sys.platform == 'windows':  # CHECK ENVIRONMENT
    #code goes here
    pass
else:
    print("This script is intended to run only on Windows, Detected platform: ", sys.platform)
    sys.exit("Failed")

sys.maxsize – นี่คือค่าจำนวนเต็มที่แสดงถึงค่าสูงสุดที่ตัวแปรสามารถเก็บได้

On a 32-bit platform it is 2**31 - 1 
On a 64-bit platform it is 2**63 - 1
สรุป

เราได้เห็นฟังก์ชันสำคัญบางอย่างของ โมดูล sys แล้ว และยังมีฟังก์ชันอื่นๆ อีกมากมาย จนกว่าเราจะมีบทความถัดไป คุณสามารถอ่านเพิ่มเติมเกี่ยวกับโมดูล sys ได้ที่นี่