وحدة os في Python

يوفر وحدة النظام التشغيل 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