
ماژول ها یا کتابخانه ها مجموعه توابع از پیش نوشته شده ایی هستند که به ما کمک میکنند سرعت کد نویسی بیشتر شود و همچین خطا در پروژه های بزرگ کاهش بیابد. ماژول OS یکی از ماژول های داخلی پایتون میباشد که با نصب پایتون بر روی سیستم نصب میشود. این ماژول به ما کمک میکند بتوانیم با اسکریپت و نرم افزار خود، از برخی از ویژگی ها و امکانات سیستم عامل استفاده کنیم.
قبل از استفاده از توابع و امکانات این ماژول نیاز داریم تا کتابخانه را به پروژه خود اضافه کنیم، برای این کار، کد زیر را در ابتدای برنامه خود، یا مفسر پایتون اجرا کنید:
import os

اولین کاربردی که قصد معرفی آن را داریم متغیر os.name میباشد، این متغیر به ما کمک میکند بدانیم برنامه ما در کدام سیستم عامل در حال اجرا است؛
print(os.name) # 'nt'

خروجی این تابع نسبت به سیستم عاملی که در آن پایتون در اجرا است متفاوت خواهد بود. این تابع دایرکتوری و فولدری که پایتون هم اکنون در آن در حال اجرا است را نمایش می دهد؛
print(os.getcwd()) # C:\Users\iranpythoneers\AppData\Local\Programs\Python\Python38-32
این تابع کمی سطح بالاتر از بقیه توابع ماژول os میباشد. یکی از کاربرد های execvp اجرای اسکریپت ها و فایل های دیگر با استفاده کد در حال اجرا میباشد، به این معنی که بر فرض مثال شما با استفاده از برنامه خود، در صورت برقراری شرطی، میتوانید یک فایل پایتون دیگر را بصورت جداگانه اجرا کنید.
برای مثال دو برنامه در دو فایل جداگانه را در نظر بگیرید، ابتدا در فایل دوم کد زیر را کپی کنید؛
print("Execution of execvp() function, by @iranpythoneers")
سپس در فایل اول که فایل اصلی است کد زیر را کپی کنید؛
import os lang = "python" inputs = ("file2.py") print(os.execvp(lang,(lang) + inputs)
سپس اگر فایل اول را اجرا کنید، مشاهده میکنید که فایل اول، فایل دوم را در پایتون اجرا کرده و خروجی آن را print کرده است.
این تابع پرکاربرد برای تغییر نام یک فایل بکار برده می شود. به اینصورت که در ورودی اول، آدرس فایل مبدا یا فعلی فایل مورد نظر را وارد میکنید، و در ورودی دوم آدرس جدید و نام جدید را وارد میکنید، برای مثال؛
os.rename( 'C:\Users\iranpythoneers\Desktop\osmodule.docx', 'C:\Users\iranpythoneers\Desktop\osmodule_virgool_iranpythooners.docx' )
با اجرا کد بالا، برنامه اسم فایل را از osmodule.docx به osmodule_virgool_iranpythooners.docx تغییر می دهد.
ارور هایی که ماژول os برای ما قرار میدهد اکثر ارور های مربوط به IO و کار با فایل ها میباشند، برای مثال؛
try: f = open('test.txt','r') except OSError: print('Catched OSError in except block')
این تابع به ما کمک میکند تا بررسی کنیم آیا پایتون اجازه دسترسی به فولدر یا فایل خاصی را دارد یا خیر. این تابع هنگامی که فایل مورد نظر وجود داشته باشد و همچنین اجازه دسترسی به آن را داشته باشد، مقدار True و در صورتی که هیچکدام از دو شرط برقرار نباشد، مقدار False را برمیگرداند. برای اجرا و استفاده از این تابع به دو ورودی نیاز داریم، ورودی اول path میباشد که مقصد و آدرس فایل مورد نظر است، و ورودی دوم mode میباشد، یعنی این تابع کدام سطح دسترسی را بررسی کند، برای توضیح بیشتر لیست انواع mode ها را برایتان یادداشت کرده ایم؛
os.F_OK – Foundos.R_OK – Readableos.W_OK – Writableos.X_OK – Executableos.access('test.txt',os.F_OK) os.access('test.txt',os.R_OK) os.access('test.txt',os.W_OK) os.access('test.txt',os.X_OK)
در اکثر سیستم عامل از طریق ترمینال یا cmd سیستم، میتوان به شماره شناسه یا ID هر برنامه در حال اجرا یا به اصطلاح process دسترسی داشت. تابع getpid نیز همین کار میکند، با استفاده از این تابع میتوانیم ID برنامه در حال اجرا را به دست آوریم؛
os.getpid() #162161
این تابع یکی از توابع پرکاربرد این ماژول است، با استفاده از این تابع، میتوانیم تمام فایل ها و فولدر های موجود در یک دایرکتوری را داشته باشیم.
os.listdir("C:\Users\iranpythoneers\Desktop") # ['file.txt', 'test.py', 'osmodule.docx', 'air', 'word.exe']
با استفاده از این تابع میتوان یه فولدر یا دایرکتوری جدید ساخت.
os.mkdir('demo')

سروش هستم از ایران پایتونیرز، ممنونم از وقتی که برای خوندن این پست گذاشتید.
در این مطلب سعی کردیم توضیحات کلی در مورد ماژول OS و 10 تابع پرکاربرد این کتابخانه بدیم.
برای دیدن ویدیو های آموزشی که دوستانم برای شما ساخته اند، می تونید به کانال ما در آپارات ، یوتیوب و یا تلگرام مراجعه کنید.