در پایتون برای نوشتن یا ایجاد فایل از تابع ()open
با حالت نوشتن استفاده میکنیم.
مراحل کلی: باز کردن فایل → نوشتن محتوا → بستن فایل.
🔹 حالتهای نوشتن (Mode)
حالت | توضیح |
---|---|
"w" | نوشتن: اگر فایل وجود نداشته باشد ساخته میشود؛ اگر باشد، محتوای قبلی پاک میشود. |
"a" | افزودن (append): اگر فایل وجود داشته باشد، متن جدید به انتهای آن اضافه میشود. |
"x" | ایجاد فایل جدید: اگر فایل وجود داشته باشد خطا میدهد. |
"wb" , "ab" | حالت باینری برای نوشتن فایلهای غیرمتنی (عکس، صدا و …). |
🔹 نوشتن متن در فایل
f = open("example.txt", "w")
f.write("سلام دنیا!\n")
f.write("این خط دوم است.\n")
f.close()
-
اگر فایل
example.txt
وجود نداشته باشد ایجاد میشود. -
اگر وجود داشته باشد، محتوا پاک و جایگزین میشود.
🔹 افزودن به انتهای فایل
f = open("example.txt", "a")
f.write("یک خط جدید اضافه شد.\n")
f.close()
محتوای قبلی باقی میماند و متن جدید به انتهای فایل اضافه میشود.
🔹 استفاده از with
(توصیه شده)
با with
نیازی به ()close
نیست:
with open("example.txt", "w") as f:
f.write("خط اول\n")
f.write("خط دوم\n")
🔹 نوشتن چند خط از لیست
lines = ["خط اول\n", "خط دوم\n", "خط سوم\n"]
with open("example.txt", "w") as f:
f.writelines(lines)
متد
()writelines
لیست رشتهها را پشت سر هم مینویسد (خودش \n اضافه نمیکند، باید در رشتهها باشد).
🔹 نوشتن فایل باینری
data = b"\x48\x65\x6c\x6c\x6f" # Hello به صورت بایت
with open("binary.dat", "wb") as f:
f.write(data)
🔹 مدیریت خطا
try:
with open("example.txt", "w") as f:
f.write("متن تستی")
except IOError as e:
print("خطا در نوشتن فایل:", e)
🔹 تمرینهای پیشنهادی
-
برنامهای بنویس که از کاربر نام و سن بگیرد و آن را در فایلی ذخیره کند.
-
فایلی ایجاد کن و 10 خط شمارهدار (1 تا 10) در آن بنویس.
-
لیستی از نامها را از کاربر بگیرد و در یک فایل متنی به صورت خط به خط ذخیره کند.
✅ خلاصه
-
برای نوشتن فایل از
open(filename, "w")
استفاده میشود. -
"w"
محتوای قبلی را پاک میکند،"a"
متن را به انتها اضافه میکند،"x"
فقط در صورت نبودن فایل ایجاد میکند. -
توصیه میشود از
with
استفاده شود تا فایل خودکار بسته شود. -
برای دادههای باینری از
"wb"
یا"ab"
استفاده کنید.