FA-TOOLS — Header Component
کار با فایل در پایتون — خواندن، نوشتن، ویرایش

کار با فایل در پایتون — خواندن، نوشتن، ویرایش

رفیق برنامه‌نویس، می‌دونستی که تسلط بر کار با فایل‌ها در پایتون یکی از اون مهارت‌هاییه که مثل یه برگ برنده می‌تونه پروژه‌هات رو کلی قدرتمندتر کنه؟ از ذخیره داده‌های کاربر گرفته تا گزارش‌گیری، پایتون یه مجموعه ابزار فوق‌العاده برای مدیریت فایل‌ها بهت میده. اگه دنبال ابزارهای کاربردی برای توسعه‌ هستی یا می‌خوای مهارت‌هات رو ارتقا بدی، حتماً یه سری به بخش اسنیپت‌های پایتون ما بزن! اگه سوالی داشتی، می‌تونی همین الان تماس بگیری: 09202232789

✨ نقشه راه کار با فایل در پایتون ✨

کار با فایل در پایتون — خواندن، نوشتن، ویرایش — تصویر 1
گام اصلی جزئیات کلیدی
1️⃣ باز کردن فایل تابع open()، حالت‌های 'r'، 'w'، 'a'.
استفاده از with open().
2️⃣ خواندن متدهای read()، readline()، readlines().
حلقه‌ها برای پردازش خط به خط.
3️⃣ نوشتن متدهای write()، writelines().
توجه به حالت‌های 'w' (بازنویسی) و 'a' (افزودن).
4️⃣ ویرایش ترکیب خواندن و نوشتن (اغلب به فایل موقت).
جایگزینی، حذف یا اضافه کردن محتوا.
5️⃣ مدیریت خطا استفاده از try...except برای خطاهای رایج.
اطمینان از بسته شدن فایل (با with).

این نقشه راه، کلید درک عمیق‌تر و کارآمدتر با فایل‌ها در پایتونه! 🚀

چرا کار با فایل در پایتون اهمیت داره؟

کار با فایل در پایتون — خواندن، نوشتن، ویرایش — تصویر 2

تصور کن یه برنامه نوشتی که اطلاعات خیلی مهمی رو پردازش می‌کنه. اگه این اطلاعات رو توی یه فایل ذخیره نکنی، به محض اینکه برنامه‌ات بسته بشه، همه چی می‌پره! اینجاست که قدرت کار با فایل‌ها خودش رو نشون میده. پایتون بهت این امکان رو میده که با هر نوع فایلی، از فایل‌های متنی ساده گرفته تا فایل‌های باینری پیچیده، کار کنی. این یعنی می‌تونی تنظیمات رو ذخیره کنی، گزارش بسازی، داده‌های حجیم رو مدیریت کنی و حتی اطلاعات رو بین برنامه‌های مختلف به اشتراک بذاری. به عبارت دیگه، برنامه‌ات دیگه محدود به حافظه موقت (RAM) نمیشه و می‌تونه اطلاعات رو برای همیشه نگه داره. این یکی از پایه‌های هر برنامه کاربردی و جدیه.

انواع فایل و حالت‌های باز کردن (Modeها)

کار با فایل در پایتون — خواندن، نوشتن، ویرایش — تصویر 3

قبل از اینکه سراغ خواندن و نوشتن بریم، باید بفهمیم پایتون فایل‌ها رو چطور می‌شناسه و ما چطور باید بهش بگیم با چه هدفی می‌خوایم یه فایل رو باز کنیم. اینجاست که مفهوم “حالت باز کردن فایل” (File Mode) وارد میشه.

حالت‌های رایج (Modes)

هر بار که تابع open() رو صدا می‌زنی، باید بهش بگی که فایل رو برای چه عملیاتی می‌خوای. این حالت‌ها با حروف مشخص میشن:

حالت (Mode) توضیحات
'r' (Read) فقط برای خواندن. اگه فایل وجود نداشته باشه، FileNotFoundError میده.
'w' (Write) فقط برای نوشتن. اگه فایل وجود نداشته باشه، یکی می‌سازه. اگه وجود داشته باشه، محتویات قبلیش رو کاملاً پاک می‌کنه و بازنویسی می‌کنه.
'a' (Append) برای افزودن به انتهای فایل. اگه فایل وجود نداشته باشه، یکی می‌سازه. محتوای قبلی رو دست نمی‌زنه.
'x' (Exclusive Creation) فقط برای ساخت و نوشتن. اگه فایل از قبل وجود داشته باشه، FileExistsError میده.
't' (Text) پیش‌فرض برای فایل‌های متنی.
'b' (Binary) برای فایل‌های باینری (مثل تصاویر، فایل‌های صوتی).
'+' (Update) برای خواندن و نوشتن همزمان. مثلاً 'r+' (فایل رو برای خواندن و نوشتن باز می‌کنه، از اول فایل شروع می‌کنه) یا 'w+' (فایل رو برای نوشتن و خواندن باز می‌کنه، محتویات رو پاک می‌کنه).

خواندن از فایل در پایتون

خب، رسیدیم به بخش جذاب خواندن! برای اینکه بتونیم از یه فایل اطلاعاتی رو بخونیم، اول باید اون رو باز کنیم.

گام اول: باز کردن فایل

بهترین و امن‌ترین راه برای باز کردن فایل‌ها استفاده از دستور with open() هست. چرا بهترینه؟ چون پایتون خودش حواسش هست که بعد از اتمام کار، فایل رو برات ببنده، حتی اگه خطایی پیش بیاد. اینجوری دیگه نگران باز موندن فایل‌ها و مشکلات احتمالی بعدی نیستی.

مثال: باز کردن برای خواندن


Click to copy


# فرض کنید فایلی به نام "my_file.txt" داریم با محتوای "سلام دنیا!"
with open('my_file.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)
# خروجی: سلام دنیا!
        

همونطور که می‌بینی، encoding='utf-8' برای فایل‌های فارسی و دارای کاراکترهای خاص ضروریه.

متدهای خواندن

حالا که فایل رو باز کردیم، چطور محتوای داخلش رو بخونیم؟ سه تا متد اصلی برای این کار داریم:

read(): خواندن همه محتوا

این متد کل محتوای فایل رو به صورت یک رشته بزرگ برمی‌گردونه. اگه فایل خیلی بزرگه، حواست باشه که ممکنه رم سیستم رو پر کنه!

مثال: read()


Click to copy


with open('my_file.txt', 'r', encoding='utf-8') as file:
    full_content = file.read()
    print(full_content)
        

readline(): خواندن خط به خط

این متد هر بار فقط یک خط از فایل رو می‌خونه و نشانه (cursor) فایل رو به خط بعدی منتقل می‌کنه. برای فایل‌های بزرگ که نمی‌خوایم کلشون رو یکجا تو حافظه داشته باشیم، عالیه.

مثال: readline()


Click to copy


with open('my_file.txt', 'r', encoding='utf-8') as file:
    first_line = file.readline()
    second_line = file.readline()
    print(f"خط اول: {first_line.strip()}") # strip() برای حذف کاراکترهای خط جدید
    print(f"خط دوم: {second_line.strip()}")
        

readlines(): خواندن همه خطوط به صورت لیست

این متد کل خطوط فایل رو می‌خونه و به صورت یک لیست از رشته‌ها برمی‌گردونه که هر رشته یک خط از فایل رو شامل میشه. هر خط شامل کاراکتر n (خط جدید) در انتهاشه.

مثال: readlines()


Click to copy


# فرض کنید my_file.txt این محتوا را دارد:
# خط اول متن
# خط دوم متن
# خط سوم متن

with open('my_file.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())
# خروجی:
# خط اول متن
# خط دوم متن
# خط سوم متن
        

یه راه دیگه برای خوندن خط به خط، اینه که خود شیء فایل رو توی یه حلقه for قرار بدی. این روش هم خیلی بهینه و پایتونیکه:

مثال: خواندن خط به خط با حلقه for


Click to copy


with open('my_file.txt', 'r', encoding='utf-8') as file:
    for line in file:
        print(line.strip())
        

نوشتن در فایل در پایتون

حالا نوبت به ذخیره اطلاعات می‌رسه. نوشتن توی فایل هم مثل خوندن، با باز کردن فایل شروع میشه، ولی با حالت‌های متفاوت.

گام اول: باز کردن فایل در حالت نوشتن

برای نوشتن، دو حالت اصلی 'w' (write) و 'a' (append) رو داریم که باید با دقت انتخاب بشن.

• حالت 'w': بازنویسی فایل

اگه با حالت 'w' فایلی رو باز کنی، تمام محتویات قبلی اون پاک میشه! خیلی مراقب باش. اگه فایل وجود نداشته باشه، پایتون برات می‌سازتش.

مثال: نوشتن با 'w'


Click to copy


with open('new_file.txt', 'w', encoding='utf-8') as file:
    file.write("این خط اول است.n")
    file.write("این خط دوم است.")
# محتوای new_file.txt:
# این خط اول است.
# این خط دوم است.
        

• حالت 'a': افزودن به انتهای فایل

اگه نمی‌خوای محتوای قبلی رو از دست بدی و فقط می‌خوای اطلاعات جدید رو به انتهای فایل اضافه کنی، حالت 'a' انتخاب توئه.

مثال: افزودن با 'a'


Click to copy


# فرض کنید new_file.txt از قبل وجود دارد با محتوای "این خط اول است.nاین خط دوم است."
with open('new_file.txt', 'a', encoding='utf-8') as file:
    file.write("nاین خط جدید به انتها اضافه می‌شود.")
# محتوای new_file.txt بعد از اجرا:
# این خط اول است.
# این خط دوم است.
# این خط جدید به انتها اضافه می‌شود.
        

متدهای نوشتن

برای نوشتن، دو متد اصلی داریم:

write(string): نوشتن یک رشته

این متد یک رشته رو توی فایل می‌نویسه و تعداد کاراکترهای نوشته شده رو برمی‌گردونه. یادت باشه که برای رفتن به خط جدید، باید خودت کاراکتر n رو اضافه کنی.

مثال: write()


Click to copy


with open('output.txt', 'w', encoding='utf-8') as file:
    file.write("این یک خط است.n")
    file.write("و این یک خط دیگر.")
        

writelines(list_of_strings): نوشتن لیستی از رشته‌ها

این متد یک لیست از رشته‌ها رو به عنوان ورودی می‌گیره و تمامشون رو به ترتیب توی فایل می‌نویسه. باز هم، برای خطوط جدید باید n رو به انتهای هر رشته اضافه کنی.

مثال: writelines()


Click to copy


lines_to_write = [
    "سلام بر پایتون!n",
    "این دومین خطی است که می‌نویسیم.n",
    "و این هم خط آخر."
]
with open('list_output.txt', 'w', encoding='utf-8') as file:
    file.writelines(lines_to_write)
        

گاهی وقتا لازمه که بلافاصله بعد از نوشتن، مطمئن بشیم اطلاعات به دیسک منتقل شده‌اند (نه اینکه فقط در بافر حافظه باشند). برای این کار می‌تونی از متد flush() استفاده کنی، هرچند که with open() خودش در پایان کار این رو تضمین می‌کنه.

ویرایش فایل‌ها در پایتون (تغییر محتوا)

ویرایش فایل‌ها یه کم پیچیده‌تر از صرفاً خواندن یا نوشتن اطلاعاته، چون عموماً نمی‌تونی وسط یه فایل متنی بپری و یه تیکه ازش رو جایگزین کنی. راه حل رایج، اینه که کل محتوا رو بخونی، تغییرات لازم رو روی اون انجام بدی، و بعد محتوای جدید رو دوباره توی فایل (یا یه فایل جدید) بنویسی.

مثال: جایگزینی کلمات خاص

فرض کن می‌خوایم توی یه فایل، همه کلمه “قدیم” رو با کلمه “جدید” جایگزین کنیم.

مثال: جایگزینی متن


Click to copy


# فایل اصلی
# content_original.txt:
# این یک فایل قدیم است.
# محتوای قدیم باید تغییر کند.

file_path = 'content_original.txt'
old_text = 'قدیم'
new_text = 'جدید'

# 1. خواندن کل محتوای فایل
with open(file_path, 'r', encoding='utf-8') as file:
    file_content = file.read()

# 2. انجام تغییرات
modified_content = file_content.replace(old_text, new_text)

# 3. بازنویسی فایل با محتوای جدید
with open(file_path, 'w', encoding='utf-8') as file:
    file.write(modified_content)

print("فایل با موفقیت ویرایش شد.")
# محتوای content_original.txt بعد از اجرا:
# این یک فایل جدید است.
# محتوای جدید باید تغییر کند.
        

این روش برای فایل‌های با اندازه متوسط خوبه. برای فایل‌های خیلی بزرگ، باید خط به خط بخونی و بنویسی، یا از یک فایل موقت استفاده کنی که سیستم منابع زیادی رو مصرف نکنه.
یادت باشه همیشه قبل از ویرایش، یه کپی از فایل اصلیت داشته باشی!

مثال: افزودن محتوا به ابتدای فایل

اضافه کردن محتوا به ابتدای یک فایل هم مشابه جایگزینیه. باید کل فایل رو بخونی، محتوای جدید رو به ابتدای اون اضافه کنی و بعد کلش رو بازنویسی کنی.

مثال: افزودن به ابتدای فایل


Click to copy


# فایل اصلی
# header_test.txt:
# خط موجود ۱
# خط موجود ۲

file_path = 'header_test.txt'
new_header = "##### عنوان جدید #####n"

# 1. خواندن کل محتوای فایل
with open(file_path, 'r', encoding='utf-8') as file:
    current_content = file.read()

# 2. اضافه کردن محتوای جدید به ابتدا
updated_content = new_header + current_content

# 3. بازنویسی فایل
with open(file_path, 'w', encoding='utf-8') as file:
    file.write(updated_content)

print("سربرگ جدید به فایل اضافه شد.")
# محتوای header_test.txt بعد از اجرا:
# ##### عنوان جدید #####
# خط موجود ۱
# خط موجود ۲
        

مدیریت خطاها و بستن فایل (Exception Handling)

در دنیای واقعی، همیشه همه چیز طبق برنامه پیش نمیره. ممکنه فایل مورد نظر وجود نداشته باشه، یا دسترسی لازم برای نوشتن رو نداشته باشی. اینجا مدیریت خطا (Exception Handling) به کارت میاد.

استفاده از try...except...finally

این ساختار بهت اجازه میده کدی رو که ممکنه خطا بده رو اجرا کنی و در صورت بروز خطا، به جای کرش کردن برنامه، اون خطا رو مدیریت کنی.

مثال: مدیریت FileNotFoundError


Click to copy


file_name = 'non_existent_file.txt'

try:
    with open(file_name, 'r', encoding='utf-8') as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print(f"خطا: فایل '{file_name}' پیدا نشد. لطفاً مسیر را بررسی کنید.")
except IOError as e: # برای سایر خطاهای ورودی/خروجی
    print(f"خطا در عملیات فایل: {e}")
finally:
    print("عملیات خواندن فایل به پایان رسید (چه موفق، چه ناموفق).")
        

اهمیت with open()

همونطور که قبلاً گفتم، استفاده از with open() بهترین روشه، چون خودش تضمین می‌کنه که فایل رو بعد از اتمام بلوک with، حتی اگه خطایی هم پیش بیاد، ببنده. این کار از مشکلاتی مثل از دست رفتن داده‌ها، یا قفل شدن فایل برای برنامه‌های دیگه جلوگیری می‌کنه.

کار با فایل‌های باینری و متنی (Binary vs. Text Files)

پایتون با دو نوع اصلی از فایل‌ها سر و کار داره: متنی (Text) و باینری (Binary).

  • فایل‌های متنی (Text Files): این‌ها فایل‌هایی هستن که می‌تونی با یه ویرایشگر متن ساده بازشون کنی و بخونیشون (مثل فایل‌های .txt، .html، .py). پایتون به صورت خودکار عملیات رمزگذاری (encoding) و رمزگشایی (decoding) رو برای این فایل‌ها انجام میده. حالت پیش‌فرض برای open() همین حالت متنیه ('t').
  • فایل‌های باینری (Binary Files): این‌ها فایل‌هایی هستن که محتوای اونا مستقیماً قابل خوندن توسط انسان نیست (مثل تصاویر .jpg، فایل‌های صوتی .mp3، فایل‌های اجرایی .exe). برای کار با این فایل‌ها، باید حالت 'b' رو به حالت باز کردن اضافه کنی (مثلاً 'rb' برای خواندن باینری یا 'wb' برای نوشتن باینری). در این حالت، داده‌ها به صورت بایت خونده یا نوشته میشن.

مثال: خواندن یک فایل باینری


Click to copy


# فرض کنید یک فایل تصویری 'image.png' در کنار اسکریپت وجود دارد
try:
    with open('image.png', 'rb') as file:
        binary_data = file.read()
        print(f"اندازه داده‌های باینری: {len(binary_data)} بایت")
        # print(binary_data[:20]) # نمایش 20 بایت اول
except FileNotFoundError:
    print("خطا: فایل image.png پیدا نشد.")
        

نکاتی برای عملکرد بهتر و امنیت

  • مسیرهای فایل (File Paths): همیشه حواست به مسیر فایل‌ها باشه. می‌تونی از مسیرهای مطلق (مثل C:Users...file.txt) یا نسبی (مثل ./data/file.txt) استفاده کنی. مسیرهای نسبی معمولاً بهترن چون برنامه‌ات قابل حمل‌تر میشه.
    برای مدیریت مسیرها، از ماژول os و pathlib پایتون استفاده کن. این ماژول‌ها بهت کمک می‌کنن تا کد پلتفرم آگنوستیک (Platform-agnostic) بنویسی؛ یعنی روی ویندوز، لینوکس و مک به درستی کار کنه.
  • رمزگذاری (Encoding): برای فایل‌های متنی، رمزگذاری خیلی مهمه. utf-8 رایج‌ترین و بهترین رمزگذاری برای پشتیبانی از زبان‌های مختلف از جمله فارسیه. همیشه سعی کن این رو موقع باز کردن فایل مشخص کنی، مگر اینکه واقعاً بدونی فایل با رمزگذاری دیگه‌ای نوشته شده.
  • دسترسی‌ها (Permissions): اگه با خطای PermissionError روبرو شدی، یعنی برنامه‌ات اجازه لازم برای خواندن یا نوشتن در اون مسیر خاص رو نداره. این مشکل معمولاً در سیستم‌عامل‌های لینوکس/یونیکس یا وقتی سعی می‌کنی در پوشه‌های سیستمی ویندوز چیزی بنویسی پیش میاد. باید دسترسی‌های لازم رو به برنامه‌ات بدی یا فایل رو در مسیری که دسترسی داری ذخیره کنی.
  • فایل‌های موقت: برای ویرایش‌های پیچیده یا کار با فایل‌های بزرگ، گاهی بهتره محتوای تغییر یافته رو توی یه فایل موقت جدید بنویسی، بعد فایل اصلی رو حذف کنی و فایل موقت رو به نام فایل اصلی تغییر نام بدی. ماژول tempfile برای این کار خیلی مفیده.

عیب‌یابی سریع (Troubleshooting)

مشکلات رایج که ممکنه هنگام کار با فایل‌ها در پایتون باهاشون روبرو بشی، و چطور حلشون کنی:

1. FileNotFoundError

مشکل: فایل مورد نظر برای خواندن یا افزودن (در حالت 'r' یا 'a' که فایل رو می‌سازه ولی اینجا مشکل در باز کردن برای خواندن هست) وجود نداره.

راه حل:

  • مسیر فایل رو دوباره چک کن. آیا املای اسم فایل درسته؟
  • مطمئن شو که فایل در همون دایرکتوری که اسکریپت پایتون رو اجرا می‌کنی وجود داره، یا مسیر مطلق رو دقیق وارد کرده باشی.
  • اگه از مسیرهای نسبی استفاده می‌کنی، ممکنه دایرکتوری کاری فعلی (Current Working Directory) اون چیزی نباشه که فکر می‌کنی. می‌تونی با os.getcwd() اون رو بررسی کنی.

2. PermissionError

مشکل: برنامه‌ات اجازه دسترسی به فایل یا دایرکتوری رو نداره.

راه حل:

  • دسترسی‌های فایل/پوشه رو در سیستم عاملت بررسی کن. (در لینوکس/مک با chmod یا تغییر ownership).
  • برنامه‌ات رو با دسترسی‌های مدیریتی (run as administrator) اجرا کن، هرچند که این کار همیشه توصیه نمیشه.
  • فایل رو به یک دایرکتوری منتقل کن که مطمئنی بهش دسترسی نوشتن/خواندن داری (مثلاً پوشه کاربر یا پوشه موقت).

3. مشکلات رمزگذاری (Encoding Errors)

مشکل: وقتی با کاراکترهای عجیب و غریب یا خطای UnicodeDecodeError روبرو میشی.

راه حل:

  • همیشه encoding='utf-8' رو هنگام open() مشخص کن، به خصوص برای فایل‌های فارسی.
  • اگه می‌دونی فایل با رمزگذاری دیگه‌ای (مثلاً 'latin-1' یا 'cp1256' برای ویندوز) ذخیره شده، همون رو به تابع open() بده.
  • برای خواندن فایل‌های با رمزگذاری ناشناخته، می‌تونی از errors='ignore' یا errors='replace' استفاده کنی، اما این کار ممکنه باعث از دست رفتن داده‌ها بشه.

4. فایل‌ها بسته نمیشوند

مشکل: اگه از file = open(...) استفاده می‌کنی و یادت میره file.close() رو صدا بزنی، منابع سیستم آزاد نمیشه و ممکنه فایل قفل بشه.

راه حل:

  • همیشه از with open(...) as file: استفاده کن. این بهترین و امن‌ترین راهه.
  • اگه به دلایلی مجبور شدی از open() بدون with استفاده کنی، حتماً file.close() رو در یک بلوک finally قرار بده.

پرسش‌های متداول (FAQ)

چطور مطمئن بشم فایل بعد از عملیات بسته میشه؟

بهترین راه استفاده از دستور with open(...) as file: است. پایتون به صورت خودکار و امن فایل را پس از اتمام بلوک with می‌بندد.

تفاوت بین حالت‌های 'w' و 'a' برای نوشتن چیست؟

حالت 'w' (write) محتویات قبلی فایل را پاک کرده و فایل را از ابتدا بازنویسی می‌کند. اما حالت 'a' (append) محتوای جدید را به انتهای فایل موجود اضافه می‌کند و محتوای قبلی را حفظ می‌نماید.

چطور یک فایل باینری را در پایتون بخوانم؟

برای خواندن فایل باینری، باید هنگام باز کردن فایل، حالت 'rb' (read binary) را مشخص کنید. در این حالت، داده‌ها به جای رشته، به صورت بایت خوانده می‌شوند.

چرا هنگام کار با فایل‌های فارسی با مشکل مواجه می‌شوم؟

این مشکل معمولاً به دلیل عدم تعیین صحیح رمزگذاری (encoding) است. برای پشتیبانی از کاراکترهای فارسی، حتماً هنگام باز کردن فایل، encoding='utf-8' را مشخص کنید.

آیا راهی برای کپی کردن کدها با یک کلیک وجود دارد؟

در محیط‌های وب، معمولاً دکمه‌های کپی برای بلوک‌های کد فراهم می‌شوند. اگر در ویرایشگر بلوک وردپرس از بلوک “Code” یا “Preformatted” استفاده کنید، ممکن است سیستم مدیریت محتوا خودش این قابلیت را اضافه کند. در غیر این صورت، با یک کلیک ساده می‌توانید تمام متن کد را انتخاب و کپی کنید.

جمع‌بندی و گام‌های بعدی

خب رفیق، تا اینجا با اصول اولیه و پیشرفته کار با فایل‌ها در پایتون آشنا شدی. از باز کردن و خواندن گرفته تا نوشتن و ویرایش، حالا می‌تونی اطلاعات رو بین اجرای برنامه‌ات ذخیره و بازیابی کنی. این یه مهارت حیاتی برای هر برنامه‌نویس پایتونه و پایه و اساس خیلی از پروژه‌های بزرگتر و پیچیده‌تر رو تشکیل میده.

پیشنهاد می‌کنم حتماً این کدها رو خودت امتحان کنی و باهاشون بازی کنی. تغییرات مختلف بدی و نتیجه رو ببینی. بهترین راه یادگیری، عمل کردنه. اگه خواستی اطلاعاتت رو در زمینه اسنیپت‌های برنامه‌نویسی بیشتر کنی، یا دنبال کدهای آماده CSS، JavaScript، HTML یا حتی وردپرس هستی، به ما سر بزن.

اینجا فقط یه شروع بود. دنیای کار با فایل‌ها خیلی وسیع‌تره. ماژول‌های مثل os، shutil برای کپی، انتقال و حذف فایل‌ها، و همچنین فرمت‌های پیچیده‌تر مثل CSV، JSON و XML که با کتابخانه‌های خاص خودشون کار می‌کنن، منتظر اکتشاف تو هستن. پس وقت رو تلف نکن و شروع به ساختن کن!

Table of Contents

آخرین نوشته‌ها