بخش های زیر نحوه ایجاد و ذخیره یک فایل جدید در پایتون را با استفاده از یک پوشه (پوشه) جدید به عنوان مقصد توضیح می دهند.
- خطا هنگام تعیین دایرکتوری غیر موجود با open()(
FileNotFoundError
) os.makedirs()
یک دایرکتوری ایجاد کنید- کد مثال برای ایجاد یک فایل جدید با مقصد
نمونه زیر نمونه ای از فایل متنی است.
هنگام ذخیره تصاویر، این به کتابخانه بستگی دارد که آیا می توانید مسیری را مشخص کنید که شامل یک فهرست غیر موجود باشد (یا اینکه اگر وجود نداشته باشد به طور خودکار یکی را ایجاد می کند).FileNotFoundError
اگر این خطا رخ داد، می توانید قبل از اجرای تابع برای ذخیره، یک دایرکتوری جدید با os.madeirs() ایجاد کنید، مانند مثال زیر.
خطا هنگام تعیین دایرکتوری غیر موجود با open()(FileNotFoundError)
هنگام ایجاد یک فایل جدید با تابع داخلی open()، اگر مسیری حاوی دایرکتوری جدید (دایرکتوری که وجود ندارد) به عنوان اولین آرگومان به عنوان مقصد مشخص شود، خطایی رخ می دهد.(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
اولین آرگومان open() می تواند یک مسیر مطلق یا یک مسیر نسبت به دایرکتوری فعلی باشد.
برای استفاده اولیه از open()، مانند ایجاد یک فایل جدید در یک فهرست موجود، یا بازنویسی یا الحاق به یک فایل موجود، به مقاله زیر مراجعه کنید.
یک دایرکتوری ایجاد کنید(os.makedirs())
هنگام ایجاد یک فایل جدید در یک دایرکتوری غیر موجود، لازم است که دایرکتوری قبل از open() ایجاد شود.
اگر از پایتون 3.2 یا بالاتر استفاده می کنید، استفاده از os.makedirs() با آرگومان exist_ok=True راحت است. حتی اگر دایرکتوری هدف از قبل وجود داشته باشد، هیچ خطایی رخ نمی دهد و می توان دایرکتوری را به یکباره ایجاد کرد.
import os
os.makedirs(new_dir_path, exist_ok=True)
اگر نسخه قدیمیتری از پایتون دارید و آرگومان exist_ok در os.makedirs() ندارید، اگر مسیر دایرکتوری موجود را مشخص کنید، با خطا مواجه میشوید، بنابراین از os.path.exists() برای بررسی استفاده کنید. ابتدا وجود دایرکتوری
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
برای جزئیات بیشتر به مقاله زیر مراجعه کنید.
کد مثال برای ایجاد یک فایل جدید با مقصد
در زیر یک نمونه کد از تابعی است که با تعیین دایرکتوری مقصد یک فایل جدید ایجاد و ذخیره می کند.
آرگومان اول dir_path مسیر دایرکتوری مقصد، آرگومان دوم نام فایل آرگومان نام فایل جدیدی است که قرار است ایجاد شود، و آرگومان سوم file_content محتوایی است که باید نوشته شود که هر کدام به عنوان یک رشته مشخص شده است.
اگر دایرکتوری مشخص شده وجود ندارد، یک دایرکتوری جدید ایجاد کنید.
import os
def save_file_at_dir(dir_path, filename, file_content, mode='w'):
os.makedirs(dir_path, exist_ok=True)
with open(os.path.join(dir_path, filename), mode) as f:
f.write(file_content)
به صورت زیر استفاده کنید.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
در این صورت فایل new_file.txt با محتوای “new text” در new_dir\sub_dir ایجاد می شود. به عبارت دیگر فایل زیر به تازگی ایجاد خواهد شد.new_dir/sub_dir/new_file.txt
الحاق نام دایرکتوری و فایل با os.path.join().
همچنین حالت open() به عنوان آرگومان مشخص شده است. برای فایلهای متنی، «w» پیشفرض خوب است، اما اگر میخواهید یک فایل باینری ایجاد کنید، mode=’wb’ را تنظیم کنید.