معرفی کتابخانه OS در پایتون: ابزاری قدرتمند برای تعامل با سیستمعامل
کتابخانه OS در پایتون یکی از ماژولهای استاندارد زبان پایتون است که ابزارهایی برای تعامل مستقیم با سیستمعامل ارائه میدهد. این ماژول به برنامهنویسان امکان میدهد وظایف مرتبط با فایلها و دایرکتوریها، متغیرهای محیطی، دستورات سیستمعامل و مدیریت فرآیندها را به راحتی انجام دهند. یکی از ویژگیهای بارز کتابخانه OS در پایتون، سازگاری با سیستمعاملهای مختلف مانند ویندوز، لینوکس و مکاواس است.
در این مقاله، به معرفی کتابخانه OS، بهترین توابع آن، و چگونگی استفاده از آنها با ذکر مثالهای کاربردی میپردازیم.
چرا از کتابخانه os در پایتون استفاده کنیم؟
در برنامهنویسی، بسیاری از مواقع نیاز داریم با فایلها و پوشهها کار کنیم، به دستورات سیستمعامل دسترسی داشته باشیم، یا اطلاعاتی درباره سیستم و فرآیندهای جاری به دست آوریم. کتابخانه os با ارائه یک رابط ساده و پرقدرت، این نیازها را به بهترین شکل برطرف میکند. برخی از مزایای اصلی این کتابخانه عبارتند از:
- سادگی استفاده: کتابخانه os توابع سادهای برای مدیریت فایلها و پوشهها دارد.
- سازگاری با همه سیستمعاملها: این ماژول به صورت مستقل از سیستمعامل کار میکند.
- امکانات گسترده: از مدیریت فایلها گرفته تا متغیرهای محیطی و دستورات سیستمی، امکانات مختلفی ارائه میدهد.
ویژگیهای اصلی کتابخانه os
کتابخانه os مجموعه گستردهای از قابلیتها را ارائه میدهد. برخی از ویژگیهای مهم آن عبارتند از:
- مدیریت فایلها و پوشهها: ایجاد، حذف، تغییر نام و لیست کردن فایلها و دایرکتوریها.
- تعامل با مسیرها: ترکیب و مدیریت مسیرها به صورت پلتفرم مستقل.
- متغیرهای محیطی: دسترسی و تغییر متغیرهای محیطی سیستمعامل.
- اجرای دستورات: اجرای دستورات سیستمعامل از طریق پایتون.
- مدیریت فرآیندها: دسترسی به شناسه فرآیندها و مدیریت آنها.
بیشتر بخوانید: آموزش پایتون رایگان
بهترین توابع کتابخانه os با مثالهای کاربردی
مدیریت فایلها و پوشهها
کتابخانه os توابع متعددی برای مدیریت فایلها و پوشهها ارائه میدهد.
- ایجاد پوشه:
import os
os.mkdir("new_directory")
print("Directory created successfully")
این دستور یک پوشه با نام new_directory در مسیر جاری ایجاد میکند.
- حذف پوشه:
import os
os.rmdir("new_directory")
print("Directory removed successfully")
- تغییر مسیر جاری:
import os
os.chdir("/path/to/directory")
print("Current working directory changed:", os.getcwd())
- لیست کردن فایلها و پوشهها:
import os
files = os.listdir(".")
print("Files and directories in the current directory:", files)
کار با مسیرها
مدیریت مسیرها یکی از قابلیتهای پرکاربرد os است.
- پیوستن مسیرها به صورت مستقل از سیستمعامل:
path = os.path.join("folder", "file.txt")
print("Full path:", path)
- جدا کردن نام فایل از مسیر:
dirname, filename = os.path.split("/path/to/file.txt")
print("Directory name:", dirname, "File name:", filename)
- بررسی وجود یک فایل یا پوشه:
if os.path.exists("file.txt"):
print("The file exists")
else:
print("The file does not exist")
متغیرهای محیطی
متغیرهای محیطی اطلاعاتی هستند که توسط سیستمعامل نگهداری میشوند.
- دریافت متغیر محیطی:
home_dir = os.getenv("HOME")
print("HOME directory:", home_dir)
- تنظیم متغیر محیطی:
os.environ["MY_VAR"] = "value"
print("Environment variable set:", os.getenv("MY_VAR"))
اجرای دستورات سیستمعامل
یکی از ویژگیهای قدرتمند os، اجرای دستورات سیستمعامل است.
- اجرای یک دستور ساده:
os.system("ls -l") # در لینوکس یا مک
os.system("dir") # در ویندوز
مدیریت فرآیندها
کتابخانه os امکاناتی برای دسترسی به اطلاعات فرآیندها ارائه میدهد.
- دریافت شناسه فرآیند جاری (PID):
pid = os.getpid()
print("Current process ID:", pid)
- دریافت نام کاربر جاری:
username = os.getlogin()
print("Current user:", username)
سازگاری کتابخانه os در پایتون با سیستمعاملهای مختلف
کتابخانه os در پایتون به صورت cross-platform طراحی شده و با اکثر سیستمعاملها سازگار است. با این حال، برخی از توابع آن مخصوص سیستمعامل خاصی هستند:
- توابع مختص ویندوز: مانند os.startfile() برای باز کردن فایلها با برنامه پیشفرض.
- توابع مختص یونیکس: مانند os.fork() یا os.kill().
برای نوشتن کدی که روی همه سیستمعاملها کار کند، میتوانید از شرطهایی مانند زیر استفاده کنید:
import os
if os.name == "nt": # ویندوز
print("Running on Windows")
elif os.name == "posix": # لینوکس و مک
print("Running on Linux or Mac")
توابع پیشرفتهتر و مثالهای کاربردیتر
ایجاد پوشه همراه با مسیرهای والد
os.makedirs("parent/child", exist_ok=True)
print("Parent and child directories created")
دریافت اندازه فایل
size = os.path.getsize("example.txt")
print(f"File size: {size} bytes")
بررسی فضای دیسک (یونیکس)
if os.name == "posix":
stats = os.statvfs("/")
free_space = stats.f_bavail * stats.f_frsize
print(f"Free space: {free_space} bytes")
بررسی تمامی متغیرهای محیطی
میتوانید تمام متغیرهای محیطی را با os.environ بررسی کنید.
# نمایش تمام متغیرهای محیطی
for key, value in os.environ.items():
print(f"{key}: {value}")
حذف متغیر محیطی
با استفاده از os.environ.pop() میتوانید یک متغیر محیطی را حذف کنید.
# حذف متغیر محیطی
os.environ.pop("MY_VAR", None)
print("Environment variable removed")
دریافت نام ماشین
برای دریافت نام ماشین از os.uname() (مختص یونیکس) استفاده میشود.
# دریافت اطلاعات ماشین (فقط در یونیکس)
if os.name == "posix":
system_info = os.uname()
print("System information:")
print(f"System name: {system_info.sysname}")
print(f"Node name: {system_info.nodename}")
print(f"Release: {system_info.release}")
print(f"Version: {system_info.version}")
print(f"Machine: {system_info.machine}")
بررسی فضای دیسک
میتوانید فضای خالی و کل دیسک را با os.statvfs() دریافت کنید (مختص یونیکس).
if os.name == "posix":
statvfs = os.statvfs("/")
free_space = statvfs.f_bavail * statvfs.f_frsize
total_space = statvfs.f_blocks * statvfs.f_frsize
print(f"Free space: {free_space} bytes")
print(f"Total space: {total_space} bytes")
جایگزینهای مدرن: os یا pathlib؟
پایتون ماژول pathlib را به عنوان جایگزین مدرنتر ارائه داده است.
from pathlib import Path
path = Path("example.txt")
print(path.exists()) # بررسی وجود فایل
نتیجهگیری
کتابخانه os در پایتون یک ابزار همهکاره و قدرتمند برای مدیریت فایلها، پوشهها، متغیرهای محیطی و اجرای دستورات سیستمعامل است. با یادگیری این کتابخانه، میتوانید برنامههای حرفهای بنویسید که به طور کامل با سیستمعامل تعامل دارند. در کنار این کتابخانه، ماژول مدرنتر pathlib نیز گزینهای عالی برای مدیریت مسیرها و فایلها است.
دیدگاهتان را بنویسید