ماژول 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 ایجاد می شود.
مثال: فرض کنید دایرکتوری های زیر را داریم:
# 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)
خروجی:
توابع رایج
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.
دیدگاهها