يوفر وحدة النظام التشغيل Python وظائف سهلة تتيح لنا التفاعل والحصول على معلومات حول نظام التشغيل وحتى التحكم في العمليات إلى حد ما.
وحدة نظام التشغيل Python
الوظائف التي توفرها وحدة النظام التشغيل تسمح لنا بالتعامل مع مهام نظام التشغيل الأساسية، بغض النظر عما إذا كان يتعلق بنظام Windows أو Macintosh أو Linux. في هذا الدرس، سنستعرض هذه الوظائف وما يمكننا القيام به معها. دعونا نبدأ رحلتنا مع هذه الوظائف والمعلومات التي تقدمها.
استيراد وحدة os في Python
يرجى ملاحظة أنه في البداية يجب علينا استيراد وحدة النظام التشغيل في برنامجنا، ثم فقط يمكننا تنفيذ أي من وظائفها.
os.name
هذه الوظيفة تُعيد اسم وحدة نظام التشغيل التي تم استيرادها. يختلف ذلك استنادًا إلى نظام التشغيل الأساسي. حاليًا، تُسجل ‘posix’، ‘os2’، ‘ce’، ‘nt’، ‘riscos’ و ‘java’. لنُنفذ هذا على النظام:
>>> print(os.name)
posix
من الواضح أن هذا يمكن أن يُخرج منصات مختلفة استنادًا إلى المترجم.
os.environ
environ
ليست وظيفة بل معلمة عملية من خلالها يمكننا الوصول إلى متغيرات البيئة في النظام. دعنا نرى مقطع الكود عينة:
import os
output = os.environ['HOME']
print(output)
عند تشغيل هذا النص، سيكون الإخراج كالتالي: يمكننا استخدامه للعمل مع متغيرات البيئة، اقرأ المزيد في تعيين متغير بيئة Python.
os.execvp
execvp
هي وظيفة من طرق تشغيل الأوامر الأخرى على النظام. لنرى مقطع الكود عينة لهذه الوظيفة:
import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) + tuple(arguments)))
لهذا، أنشأنا مجرد نص برمجي عينة بوصفه hello.py
بالكود التالي:
print('Hello')
عند تشغيل هذا النصيب، سيكون الإخراج كالتالي:
os.getuid
تقوم هذه الوظيفة في وحدة os بإرجاع معرف المستخدم أو UID لعملية الشل الحالية، كما هو معروف بشكل شائع.
>>> os.getuid()
501
لذا، معرف عملية الشل الحالية هو 501.
os.rename
مع وظيفة إعادة تسمية الملف في Python، يمكننا بسهولة إعادة تسمية ملف.
import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')
يرجى ملاحظة أنه يجب علينا توفير الأذونات الصحيحة لنصيبنا لهذا الغرض.
os.system
تتيح لنا وظيفة نظام os في Python تشغيل أمر في نصيب Python، تمامًا كما لو كنت أقوم بتشغيله في شلي. على سبيل المثال:
import os
currentFiles = os.system("users > users.txt")
عندما قمت بتشغيل هذا النصيب، تم إنشاء ملف جديد في نفس الدليل باسم users.txt ومحتوى السلسلة ‘shubham’ كما هو مُرجع من الشل الأصلي أيضًا: يرجى ملاحظة أن هذا هو أمر قوي للغاية ويجب استخدامه بحذر.
os.error
الفئة os.error في وحدة Python os هي الفئة الأساسية لأخطاء ذات الصلة بالإدخال/الإخراج. لذا يمكننا التقاط أخطاء الإدخال/الإخراج باستخدام OSError في فقرة except.
import os
try:
f = open('abc.txt', 'r') # file is missing
except OSError:
print('Error')
os.getpid
تُرجع هذه الوظيفة معرف العملية الحالي أو PID، كما هو معروف بشكل شائع.
>>> os.getpid()
71622
لذا، معرف المستخدم لعملية الشل الحالية هو 71622.
os.listdir
تقوم هذه الوظيفة بفقر قائمة بالملفات والدلائل الموجودة في الدليل الحالي للعمل.
>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']
تعيد قائمة قابلة للتكرار من أسماء الدلائل والملفات.
os.uname
تُرجع هذه الوظيفة معلومات تحدد نظام التشغيل الحالي الذي يتم تنفيذه عليه.
>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')
كانت تلك مفصلة جدًا بالفعل.
استيراد os.path مقابل استيراد os
os.path
يعمل بشكل غريب في الواقع. يبدو وكأن os
يأتي مع وحدة فرعية path
ولكن في الواقع، os
هو وحدة عادية تعمل مع sys.module
لدعم os.path
. دعونا نقوم بسرد ما يحدث خلف الكواليس:
- عندما يبدأ Python، يقوم بتحميل العديد من الوحدات في
sys.module
. - يتم تحميل وحدة
os
أيضًا عند بدء Python. يخصصos
مساره إلى السمة الخاصة بالوحدة الخاصة به. - يقوم بحقن
sys.modules['os.path'] = path
بحيث يمكنك استخدامimport os.path
كما لو كانت وحدة فرعية.
ملخص
في هذا الدرس، قرأنا عن مختلف الوظائف التي توفرها وحدة النظام في Python ورأينا كيفية عملها. اطلع على المزيد من الدروس حول Python هنا. المرجع: وثائق الواجهة البرمجية للتطبيقات
Source:
https://www.digitalocean.com/community/tutorials/python-os-module