بکندباز

کاربرد های ماژول OS در پایتون

ماژول OS در پایتون عملکردهایی را برای تعامل با سیستم عامل ارائه می دهد. ماژول OS تحت ماژول های ابزار استاندارد پایتون قرار می گیرد. این ماژول روش هایی برای استفاده از عملکرد های وابسته به سیستم عامل را ارائه می دهد. ماژول های *os* و *os.path* دارای توابع زیادی برای تعامل با سیستم فایل هستند. آموزش مرتبط = آموزش مقدماتی پایتون

مدیریت دایرکتوری فعلی

Current Working Directory (CWD) را به عنوان یک پوشه در نظر بگیرید، جایی که کد پایتون در آن در حال اجرا است. هر زمان که فایل‌ها فقط با نامشان خوانده می‌شوند، پایتون فرض می‌کند که در همان دایرکتوری فعلی (CWD) قرار دارند، به این معنی که اگر فقط نام فایل آورده شود، تنها در صورتی موفق خواهد بود که فایل در دایرکتوری فعلی پایتون باشد.
توجه: پوشه ای که اسکریپت پایتون در آن اجرا می شود به عنوان دایرکتوری فعلی شناخته می شود. نه مسیری که اسکریپت پایتون در آن قرار دارد.

دریافت دایرکتوری جاری

برای بدست آوردن محل دایرکتوری فعلی از os.getcwd()‎ استفاده می شود.
مثال:

# Python program to explain os.getcwd()‎ method 
         
# importing os module 
import os 
     
# Get the current working 
# directory (CWD) 
cwd = os.getcwd()‎ 
     
# Print the current working 
# directory (CWD) 
print("Current working directory:", cwd) 

خروجی:

Current working directory: /home/nikhil/Desktop/old

تغییر دایرکتوری کاری فعلی

برای تغییر دایرکتوری کاری فعلی (CWD) از متد os.chdir()‎ استفاده می شود. این روش CWD را به یک مسیر مشخص تغییر می دهد. فقط یک آرگومان را به عنوان مسیر دایرکتوری جدید می گیرد.
توجه: دایرکتوری فعلی پوشه ای است که اسکریپت پایتون در آن کار می کند.
مثال:

# Python program to change the 
# current working directory 
   
   
import os 
   
# Function to Get the current  
# working directory 
def current_path()‎: 
    print("Current working directory before") 
    print(os.getcwd()‎) 
    print()‎ 
   
   
# Driver's code 
# Printing CWD before 
current_path()‎ 
   
# Changing the CWD 
os.chdir('../') 
   
# Printing CWD after 
current_path()‎
Current working directory before
C:\Users\Nikhil Aggarwal\Desktop\old

Current working directory after
C:\Users\Nikhil Aggarwal\Desktop

ایجاد دایرکتوری

روش های مختلفی در ماژول OS برای ایجاد دایرکتوری وجود دارد:

  • os.mkdir()‎
  • os.makedirs()‎

ایجاد دایرکتوری با استفاده از os.mkdir()‎

متد os.mkdir()‎ در پایتون برای ایجاد دایرکتوری با گرفتن نام مسیر مورد نظر، استفاده می شود. اگر دایرکتوری ایجاد شده از قبل وجود داشته باشد، این متد یک خطای FileExistsError در خروجی برمی گرداند.
مثال:

# Python program to explain os.mkdir()‎ method 
 
# importing os module 
import os 
 
# Directory 
directory = "Backendbaz"
 
# Parent Directory path 
parent_dir = "D:/Pycharm projects/"
 
# Path 
path = os.path.join(parent_dir, directory) 
 
# Create the directory 
# 'Backendbaz' in 
# '/home / User / Documents' 
os.mkdir(path) 
print("Directory '% s' created" % directory) 
 
# Directory 
directory = "demos"
 
# Parent Directory path 
parent_dir = "D:/Pycharm projects"
 
# mode 
mode = 0o666
 
# Path 
path = os.path.join(parent_dir, directory) 
 
# Create the directory 
# 'Backendbaz' in 
# '/home / User / Documents' 
# with mode 0o666 
os.mkdir(path, mode) 
print("Directory '% s' created" % directory)

خروجی:

Directory 'Backendbaz' created
Directory 'demos' created

ایجاد دایرکتوری با استفاده از os.makedirs()‎

متد os.makedirs()‎ در پایتون برای ایجاد دایرکتوری به صورت بازگشتی استفاده می شود. این بدان معناست که در حین ساخت دایرکتوری، اگر هر دایرکتوری در مسیر دایرکتوری مورد نظر ​​وجود نداشته باشد، متد os.makedirs () همه آنها را ایجاد می کند. مثلاً می خواهیم یک دایرکتوری به نام Project در پوشه backendbaz در درایو D ایجاد کنیم. اما در درایو D پوشه میانی یعنی backendbaz نیز وجود ندارد. با ارسال آرگومان D:/backendbaz/Project به متد os.makedirs ابتدا پوشه backendbaz و سپس پوشه Project ساخته خواهد شد.
مثال:

# Python program to explain os.makedirs()‎ method 
     
# importing os module 
import os 
     
# Leaf directory 
directory = "Project"
     
# Parent Directories 
parent_dir = "D:/backendbaz"
     
# Path 
path = os.path.join(parent_dir, directory) 
     
# Create the directory 
# 'Project' 
os.makedirs(path) 
print("Directory '% s' created" % directory) 
     
# Directory 'backendbaz' will 
# be created too 
# if it does not exists 
     
     
     
# Leaf directory 
directory = "c"
     
# Parent Directories 
parent_dir = "D:/backendbaz/a/b"
     
# mode 
mode = 0o666
     
path = os.path.join(parent_dir, directory) 
     
# Create the directory 'c' 
     
os.makedirs(path, mode) 
print("Directory '% s' created" % directory) 
     
     
# 'backendbaz', 'a', and 'b' 
# will also be created if 
# it does not exists 
     
# If any of the intermediate level 
# directory is missing 
# os.makedirs()‎ method will 
# create them 
     
# os.makedirs()‎ method can be 
# used to create a directory tree 

خروجی:

Directory 'Project' created
Directory 'c' created

دریافت لیست فایل ها و دایرکتوری ها با پایتون

متد os.listdir()‎ در پایتون برای دریافت لیست تمام فایل ها و دایرکتوری ها در دایرکتوری مشخص شده استفاده می شود. اگر هیچ دایرکتوری را مشخص نکنیم، لیست فایل ها و دایرکتوری ها در دایرکتوری فعلی برگردانده می شود.
مثال:

# Python program to explain os.listdir()‎ method 
     
# importing os module 
import os 
 
# Get the list of all files and directories 
# in the root directory 
path = "/"
dir_list = os.listdir(path) 
 
print("Files and directories in '", path, "' :") 
 
# print the list 
print(dir_list) 

خروجی:

Files and directories in ' / ' :
['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 
'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']

حذف دایرکتوری یا فایل ها با استفاده از پایتون

ماژول OS روش های مختلفی را برای حذف دایرکتوری ها و فایل ها در پایتون ارائه می دهد:

  • استفاده از os.remove()‎
  • استفاده از os.rmdir()‎

حذف فایل با استفاده از os.remove()‎

متد os.remove()‎ در پایتون برای حذف یک فایل استفاده می شود. این روش نمی تواند دایرکتوری را حذف کند. اگر مسیر مشخص شده یک دایرکتوری باشد، خطای OSError توسط متد تولید می شود.

مثال: فرض کنید فایل های موجود در پوشه عبارتند از:

# Python program to explain os.remove()‎ method 
     
# importing os module 
import os 
     
# File name 
file = 'file1.txt'
     
# File location 
location = "D:/backendbaz/Projects/files/"
     
# Path 
path = os.path.join(location, file) 
     
# Remove the file 
# 'file.txt' 
os.remove(path) 

خروجی:

حذف دایرکتوری با استفاده از os.rmdir()‎

متد os.rmdir()‎ در پایتون برای حذف یک دایرکتوری خالی استفاده می شود. اگر مسیر مشخص شده یک دایرکتوری خالی نباشد، خطای OSE ایجاد می شود.
مثال: فرض کنید دایرکتوری های زیر را داریم:

حذف دایرکتوری با استفاده از os.rmdir()‎

# Python program to explain os.rmdir()‎ method 
     
# importing os module 
import os 
     
# Directory name 
directory = "demos"
     
# Parent Directory 
parent = "D:/backendbaz/Projects"
     
# Path 
path = os.path.join(parent, directory) 
     
# Remove the Directory 
# "demos" 
os.rmdir(path) 

خروجی:

حذف دایرکتوری با استفاده از os.rmdir()‎

توابع رایج

1. os.name: این تابع نام ماژول وابسته به سیستم عامل وارد شده را می دهد. نام‌های زیر در حال حاضر ثبت شده‌اند: ‘posix’، ‘nt’، ‘os2’، ‘ce’، ‘java’ و ‘riscos’.

import os
 
print(os.name)

خروجی:

posix

توجه: ممکن است در مفسرهای مختلف خروجی متفاوتی داشته باشد.
2. os.error: همه توابع ماژول OS در هنگام دریافت نام و مسیرهای فایلی که نامعتبر یا غیرقابل دسترس هستند، یا آرگومان های دیگری که نوع داده درستی دارند، اما توسط سیستم عامل پذیرفته نمی شوند، خطای OSError ایجاد می کنند. os.error یک نام مستعار برای OSError داخلی سیستم است.

import os
 
 
try:
    # If the file does not exist,
    # then it would throw an IOError
    filename = 'OLD.txt'
    f = open(filename, 'rU')
    text = f.read()‎
    f.close()‎
 
# Control jumps directly to here if 
# any of the above lines throws IOError.    
except IOError:
 
    # print(os.error) will <class 'OSError'>
    print('Problem reading: ' + filename)
     
# In any case, the code then continues with 
# the line after the try/except

خروجی:

Problem reading: OLD.txt

3. os.rename()‎: یک فایل old.txt را می توان با استفاده از تابع os.rename به new.txt تغییر نام داد. نام فایل تنها در صورتی تغییر می کند که فایل موجود باشد و کاربر permision لازم برای تغییر نام فایل را داشته باشد.

import os
 
 
fd = "old.txt"
os.rename(fd,'New.txt')

 

4. os.path.exists()‎: این متد با ارسال نام فایل به عنوان پارامتر بررسی می کند که آیا فایلی وجود دارد یا خیر. ماژول OS دارای یک ماژول فرعی به نام PATH است که با استفاده از آن می توانیم عملکردهای بیشتری را انجام دهیم.

import os 
#importing os module
 
result = os.path.exists("file_name") #giving the name of the file as a parameter.

print(result)

خروجی

False

همانطور که در کد بالا، فایل وجود ندارد، خروجی False می دهد. اگر فایل موجود باشد خروجی True را به ما می دهد.

مقاله مرتبط: ماژول path در پایتون

5. os.path.getsize()‎: این متد پایتون اندازه فایل را بر حسب بایت به ما می دهد. برای استفاده از این متد باید نام فایل را به عنوان پارامتر ارسال کنیم.

import os #importing os module
 
size = os.path.getsize("filename")
 
print("Size of the file is", size," bytes.")

خروجی:

Size of the file is 192 bytes.
zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*