כמה פונקציות ששווה להכיר מהמודולים os, sys
המודולים sys ו os מהספריה הסטנדרטית של פייתון כוללים המון פונקציות ומשתנים ואני חושב שאם אתם מתכננים להיכנס לעומק של פייתון צלילה בתיעוד שלהם היא הכרחית. עד שתעשו את זה הנה כמה פונקציות ומשתנים שאני אוהב במיוחד מתוכם.
1. שימוש בפרמטרים משורת הפקודה עם sys.argv
המנגנון הראשון ששווה לדבר עליו הוא המשתנה sys.argv, ותפקידו לעזור לנו לכתוב סקריפטים שירוצו מתוך שורת הפקודה. לפני שתתחילו לשחק עם sys.argv שווה לוודא שפייתון מותקן אצלכם בצורה טובה ואתם יכולים להפעיל סקריפטים משורת הפקודה באופן הבא:
כנסו ל cmd (או בלינוקס או מק לתוכנת המסוף המתאימה).
כתבו שם
python --version
.התוצאה צריכה לכלול מספר גירסא של פייתון ולהיראות בערך כך:
Python 3.7.0
עכשיו שזה עבד נוכל לכתוב סקריפט שבהפעלה שלו משורת הפקודה יוכל להסתכל על הפרמטרים שהעברנו בהפעלה. במילים אחרות אנחנו נפעיל את הסקריפט עם:
$ python myscript.py one two three
ואז הסקריפט יוכל להסתכל על המילים one, two ו three ולהחליט מה לעשות לפי מילים אלה.
נתחיל עם סקריפט פשוט שרק מדפיס בחזרה את המילים שהוא קיבל משורת הפקודה:
import sys
print(sys.argv)
והתוצאה כשמפעילים את השורה שכתבתי קודם תהיה:
['myscript.py', 'one', 'two', 'three']
עכשיו אפשר להשתולל עם המערך sys.argv בשביל סקריפטים יותר מקוריים, למשל הסקריפט הבא שמדפיס לכם בחזרה את המילים שנתתם לו בסדר אקראי:
import sys
import random
words = sys.argv[1:]
random.shuffle(words)
print(' '.join(words))
אגב אם אתם אוהבים לכתוב סקריפטים משורת הפקודה שווה לבדוק גם את המודול argparse של פייתון שמציע הרבה יותר אפשרויות בהשוואה לפיענוח לבד של sys.argv.
2. מידע על הסביבה
דברים נוספים שאפשר לקחת מ sys כוללים מידע על הסביבה, לדוגמא:
המשתנה
sys.executable
יחזיר לכם את הנתיב לתוכנית python שעכשיו מריצה את הסקריפט שלכם.המשתנה
sys.path
יחזיר רשימה של כל התיקיות בהן פייתון מחפש מודולים.המשתנה
sys.version
יחזיר את גירסת הפייתון שמריצה עכשיו את הסקריפט.
3. צפיה במשתני סביבה עם os.environ
המודול os כולל הרבה יכולות הקשורות לאינטרקציה בין פייתון למערכת ההפעלה. בתור התחלה הוא יאפשר לנו לגשת למשתני הסביבה של המערכת באמצעות המשתנה os.environ
. משתנה זה מתנהג כמו Dictionary ובאמצעות סוגריים מרובעים אנחנו מושכים ממנו ערך של משתנה סביבה. הנה כמה דוגמאות:
>>> import os
>>> print(os.environ['HOME'])
/Users/ynonperek
>>> print(os.environ['USER'])
ynonperek
והלולאה הבאה תדפיס בצורה יפה את כל משתני הסביבה במערכת:
import os
for name, value in os.environ.items():
print(f"{name:30}: {value}")
4. צפיה במידע על מערכת ההפעלה עם os.uname
המשתנה os.uname
יודע לספר לנו דברים על מערכת ההפעלה הנוכחית כדי שנוכל לכתוב תוכניות שמתנהגות אחרת לפי הסביבה בה הן רצות:
>>> os.uname().sysname
'Darwin'
>>> os.uname().version
'Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/RELEASE_X86_64'