در پایتون، برای کار با فایلها از تابع داخلی ()open
استفاده میشود.
با این تابع میتوان ایجاد، خواندن، نوشتن و ویرایش فایلهای متنی یا باینری را انجام داد.
🔹 ساختار تابع ()open
file = open("filename", "mode")
-
filename
: مسیر و نام فایل (مثلاً"data.txt"
). -
mode
: حالت باز کردن فایل.
🔹 حالتهای متداول (Mode)
حالت | توضیح |
---|---|
"r" | فقط خواندن (پیشفرض). خطا میدهد اگر فایل وجود نداشته باشد. |
"w" | نوشتن (اگر فایل وجود نداشته باشد ایجاد میکند؛ اگر باشد محتوا را پاک میکند). |
"a" | افزودن به انتهای فایل (append). |
"x" | ایجاد فایل جدید (اگر فایل وجود داشته باشد خطا میدهد). |
"b" | حالت باینری (مثلاً "rb" یا "wb" ). |
"t" | حالت متنی (پیشفرض). |
"+" | خواندن و نوشتن همزمان (مثلاً "r+" یا "w+" ). |
🔹 خواندن فایل
1️⃣ خواندن کل محتوا
f = open("example.txt", "r")
content = f.read()
print(content)
f.close()
2️⃣ خواندن خطوط
f = open("example.txt", "r")
lines = f.readlines()
for line in lines:
print(line.strip())
f.close()
یا خط به خط:
with open("example.txt", "r") as f:
for line in f:
print(line.strip())
🔹 نوشتن در فایل
f = open("example.txt", "w")
f.write("سلام دنیا!\n")
f.write("خط دوم\n")
f.close()
اگر فایل وجود نداشته باشد ایجاد میشود؛ اگر باشد، محتوای قبلی پاک میشود.
🔹 افزودن به انتهای فایل
f = open("example.txt", "a")
f.write("خط جدید اضافه شد\n")
f.close()
🔹 کار با with
(توصیه شده)
استفاده از with
باعث میشود فایل پس از اتمام کار بهطور خودکار بسته شود:
with open("example.txt", "r") as f:
print(f.read())
🔹 کار با فایل باینری (عکس، صدا و …)
with open("image.png", "rb") as f:
data = f.read()
یا نوشتن:
with open("copy.png", "wb") as f:
f.write(data)
🔹 مدیریت خطا
try:
with open("nofile.txt", "r") as f:
print(f.read())
except FileNotFoundError:
print("فایل پیدا نشد!")
🔹 تمرینهای پیشنهادی
-
یک فایل متنی بساز، چند خط در آن بنویس و دوباره بخوان.
-
فایلی باز کن و تعداد خطوط، کلمات و کاراکترهای آن را محاسبه کن.
-
یک فایل متنی دیگر ایجاد کن و محتوای فایل اول را در آن کپی کن.
✅ خلاصه
-
open(filename, mode)
برای کار با فایلها استفاده میشود. -
حالتهای اصلی:
r
(خواندن)،w
(نوشتن)،a
(افزودن)،x
(ایجاد). -
همیشه بعد از کار فایل را ببندید یا از
with
برای بستن خودکار استفاده کنید. -
میتوانید با
rb
وwb
فایلهای باینری مثل عکس یا صدا را مدیریت کنید.