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

عکس شاخص خواندن و نوشتن فایل در پایتون

خواندن و نوشتن فایل در پایتون یکی از مهم‌ترین مفاهیم برای برنامه‌نویسان است که به آن‌ها این امکان را می‌دهد تا با داده‌های ذخیره‌ شده در فایل‌ها تعامل داشته باشند. پایتون با ارائه توابع ساده و مؤثر مانند ()open() ،read() ،write و ()close، کار با فایل‌ها را به‌راحتی قابل انجام می‌سازد. این عملیات می‌تواند شامل خواندن محتویات فایل‌ها، نوشتن اطلاعات جدید در آن‌ها، و مدیریت منابع فایل‌ها باشد.

مقدمه

پایتون توابع داخلی برای ایجاد، خواندن و نوشتن فایل در پایتون فراهم می‌کند. دو نوع فایل در پایتون قابل مدیریت هستند:

  1. فایل‌های متنی: در این نوع فایل، هر خط متن با یک کاراکتر ویژه به نام EOL «پایان خط» پایان می‌یابد که در پایتون به‌صورت پیش‌فرض کاراکتر n\ است.
  2. فایل‌های باینری: در این نوع فایل، پایان‌ دهنده‌ای برای خطوط وجود ندارد و داده‌ها پس از تبدیل شدن به زبان باینری قابل‌ درک برای ماشین ذخیره می‌شوند.

در این مقاله، به بررسی نحوه خواندن و نوشتن فایل در پایتون خواهیم پرداخت. این توانایی به شما کمک می‌کند تا داده‌ها را از فایل‌ها استخراج کنید یا تغییرات جدیدی را در آن‌ها ذخیره کنید، که در بسیاری از پروژه‌ها و برنامه‌ها ضروری است.

باز کردن یک فایل متنی در پایتون

این کار با استفاده از تابع ()open انجام می‌شود. برای استفاده از این تابع نیازی به وارد کردن هیچ ماژولی نیست.

File_object = open(r"File_Name","Access_Mode")

مثال: در اینجا، file1 به‌عنوان یک شی برای MyFile1 و file2 به‌عنوان یک شیء برای MyFile2 ایجاد می‌شود.

# Open function to open the file "MyFile1.txt"
# (same directory) in append mode and
file1 = open("MyFile1.txt","a")

# store its reference in the variable file1
# and "MyFile2.txt" in D:\Text in file2
file2 = open(r"D:\Text\MyFile2.txt","w+")

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

سه روش برای خواندن فایل متنی «Text file» در پایتون وجود دارد:

۱. استفاده از ()read

۲. استفاده از ()readline

۳. استفاده از ()readlines

خواندن از فایل با استفاده از ()read در پایتون

()read: بایت‌های خوانده‌شده را به صورت یک رشته «String» برمی‌گرداند. اگر n مشخص شود، تعداد n بایت را می‌خواند. اگر n مشخص نشود، کل فایل را می‌خواند.

File_object.read([n])

خواندن یک فایل متنی با استفاده از ()readline در پایتون

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

اگر n مشخص شود، حداکثر n بایت را می‌خواند. با این حال، حتی اگر n از طول خط بیشتر باشد، بیش از یک خط را نمی‌خواند.

File_object.readline([n])

خواندن یک فایل با استفاده از ()readlines در پایتون

()readlines: تمام خطوط فایل را می‌خواند و هر خط را به‌صورت یک عنصر رشته‌ای در یک لیست «List» برمی‌گرداند.

File_object.readlines()

نکته: کاراکتر n\ به‌عنوان یک کاراکتر ویژه با دو بایت در نظر گرفته می‌شود.

در این مثال، فایلی به نام «myfile.txt» ایجاد و در حالت نوشتن «w» باز می‌شود. داده‌ها «Datas» با استفاده از متدهای write و writelines در فایل نوشته می‌شوند. سپس فایل در حالت خواندن و افزودن «+r» باز می‌شود. عملیات مختلف خواندن، شامل read ، readline ، readlines  و استفاده از seek ، روش‌های مختلف بازیابی داده «Data recovery» از فایل را نشان می‌دهند. در نهایت، فایل بسته می‌شود.

file1 = open("myfile.txt", "w")
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]

# \n is placed to indicate EOL (End of Line)
file1.write("Hello \n")
file1.writelines(L)
file1.close()  # to change file access modes

file1 = open("myfile.txt", "r+")

print("Output of Read function is ")
print(file1.read())
print()

# seek(n) takes the file handle to the nth
# byte from the beginning.
file1.seek(0)

print("Output of Readline function is ")
print(file1.readline())
print()

file1.seek(0)

# To show difference between read and readline
print("Output of Read(9) function is ")
print(file1.read(9))
print()

file1.seek(0)

print("Output of Readline(9) function is ")
print(file1.readline(9))

file1.seek(0)
# readlines function
print("Output of Readlines function is ")
print(file1.readlines())
print()
file1.close()

خروجی:

Output of Read function is 
Hello 
This is Delhi 
This is Paris 
This is London 
Output of Readline function is 
Hello 
Output of Read(9) function is 
Hello 
Th
Output of Readline(9) function is 
Hello 
Output of Readlines function is 
['Hello \n', 'This is Delhi \n', 'This is Paris \n', 'This is London \n']

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

دو روش برای نوشتن در یک فایل وجود دارد:

  • استفاده از ()write
  • استفاده از ()writelines

نوشتن در فایل متنی پایتون با استفاده از ()write در پایتون

()write: رشته str1 را در یک خط در فایل متنی وارد می‌کند.

File_object.write(str1)

file = open("Employees.txt", "w") 

for i in range(3): 
name = input("Enter the name of the employee: ") 
file.write(name) 
file.write("\n") 
    
file.close() 

print("Data is written into the file.") 

خروجی:

Data is written into the file.

نوشتن در فایل متنی با استفاده از ()writelines در پایتون

()writelines: برای یک لیست از عناصر رشته‌ای، هر رشته به طور جداگانه در فایل متنی وارد می‌شود. از این روش برای وارد کردن چندین رشته در یک زمان استفاده می‌شود.

File_object.writelines(L) for L = [str1, str2, str3]

file1 = open("Employees.txt", "w") 
lst = [] 
for i in range(3): 
    name = input("Enter the name of the employee: ") 
    lst.append(name + '\n') 
    
file1.writelines(lst) 
file1.close() 
print("Data is written into the file.") 

خروجی:

Data is written into the file.

اضافه کردن یک فایل در پایتون

در این مثال، یک فایل به نام «myfile.txt» ابتدا در حالت نوشتن «w» باز می‌شود تا خطوط متنی نوشته شود. سپس فایل دوباره در حالت افزودن «a» باز می‌شود و کلمه «Today» به محتوای موجود اضافه می‌شود. خروجی پس از افزودن با استفاده از readlines نمایش داده می‌شود. سپس فایل دوباره در حالت نوشتن باز می‌شود و محتوا با کلمه «Tomorrow» جایگزین می‌شود. خروجی نهایی پس از نوشتن با استفاده از readlines نمایش داده می‌شود.

file1 = open("myfile.txt", "w")
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
file1.writelines(L)
file1.close()

# Append-adds at last
file1 = open("myfile.txt", "a")  # append mode
file1.write("Today \n")
file1.close()

file1 = open("myfile.txt", "r")
print("Output of Readlines after appending")
print(file1.readlines())
print()
file1.close()

# Write-Overwrites
file1 = open("myfile.txt", "w")  # write mode
file1.write("Tomorrow \n")
file1.close()

file1 = open("myfile.txt", "r")
print("Output of Readlines after writing")
print(file1.readlines())
print()
file1.close()

خروجی:

Output of Readlines after appending
['This is Delhi \n', 'This is Paris \n', 'This is London \n', 'Today \n']
Output of Readlines after writing
['Tomorrow \n']

بستن یک فایل متنی در پایتون

تابع ()close در پایتون «Python» فایل را می‌بندد و فضای حافظه‌ای که توسط آن فایل اختصاص داده شده است را آزاد می‌کند. از این تابع زمانی استفاده می‌شود که فایل دیگر مورد نیاز نباشد یا اگر قرار است در حالت فایل متفاوتی باز شود.

# Opening and Closing a file "MyFile.txt"
# for object name file1.
file1 = open("MyFile.txt","a")
file1.close()

نتیجه گیری

پایتون ابزارهای ساده و موثری برای خواندن و نوشتن فایل در پایتون ارائه می‌دهد که امکان پردازش داده‌ها را به‌طور مؤثر فراهم می‌کند. با استفاده از توابعی مانند ()open() ،read() ،write() و ()close، می‌توان به‌راحتی فایل‌ها را برای خواندن و نوشتن باز کرد و داده‌ها را در آن‌ها مدیریت کرد. استفاده از ساختار with به‌ویژه در مدیریت فایل‌ها اهمیت زیادی دارد، چرا که به‌طور خودکار منابع را آزاد می‌کند و از ایجاد مشکلاتی مانند فراموشی بستن فایل جلوگیری می‌کند. در مجموع، پایتون با سادگی و قدرت خود در عملیات فایل‌خوانی و فایل‌نویسی، ابزار مناسبی برای برنامه‌نویسان در ذخیره‌سازی و پردازش داده‌ها فراهم می‌آورد.


سوالات متداول


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

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

فایل‌ها چگونه در حافظه اصلی بارگذاری می‌شوند؟

در کامپیوتر دو نوع حافظه وجود دارد: حافظه اصلی و حافظه ثانویه. تمام فایل‌هایی که ذخیره می‌کنید یا دیگران ذخیره می‌کنند، در حافظه ثانویه قرار می‌گیرند، و هر داده‌ای که در حافظه اصلی باشد با خاموش شدن کامپیوتر حذف می‌شود. بنابراین، هنگامی که نیاز به تغییر یک فایل متنی یا کار با آن در پایتون دارید، باید آن فایل را به حافظه اصلی بارگذاری کنید. پایتون از طریق مدیریت‌کننده فایل «file handlers» با فایل‌هایی که در حافظه اصلی یا حافظه اصلی بارگذاری شده‌اند، تعامل می‌کند. فرایند کار: سیستم‌عامل فایل موردنظر را در حافظه جستجو می‌کند. اگر فایل یافت شود، یک مدیریت‌کننده فایل «file handler» به پایتون برمی‌گرداند که به شما امکان کار با فایل را می‌دهد.

میزان رضایتمندی
لطفاً میزان رضایت خودتان را از این مطلب با دادن امتیاز اعلام کنید.
[ امتیاز میانگین 0 از 0 نفر ]
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع و مراجع:
geeksforgeeks مجله پی استور w3schools

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *



برچسب‌ها:
برنامه نویسی پایتون پایتون


پیمایش به بالا