Python File Write

در پایتون برای نوشتن یا ایجاد فایل از تابع ()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)

🔹 تمرین‌های پیشنهادی

  1. برنامه‌ای بنویس که از کاربر نام و سن بگیرد و آن را در فایلی ذخیره کند.

  2. فایلی ایجاد کن و 10 خط شماره‌دار (1 تا 10) در آن بنویس.

  3. لیستی از نام‌ها را از کاربر بگیرد و در یک فایل متنی به صورت خط به خط ذخیره کند.

✅ خلاصه

  • برای نوشتن فایل از open(filename, "w") استفاده می‌شود.

  • "w" محتوای قبلی را پاک می‌کند، "a" متن را به انتها اضافه می‌کند، "x" فقط در صورت نبودن فایل ایجاد می‌کند.

  • توصیه می‌شود از with استفاده شود تا فایل خودکار بسته شود.

  • برای داده‌های باینری از "wb" یا "ab" استفاده کنید.