බොහෝ විට, අපේ වැඩසටහන් වලට දත්ත ගොනුවකින් කියවීමට (උදා: settings, user data) හෝ දත්ත ගොනුවකට ලිවීමට (උදා: වාර්තා, logs) අවශ්ය වේ. Python මගින් මෙය ඉතා පහසුවෙන් කළ හැක.
ගොනු සමඟ වැඩ කිරීමේදී නිර්දේශිතම ක්රමය වන්නේ **with open(...)** යන්නයි. මන්ද, එය ඔබ වෙනුවෙන් ස්වයංක්රීයව ගොනුව වැසීම (close) සිදු කරන නිසා, දෝෂයක් ඇති වුවද, ගොනුව සුරක්ෂිතව පවතී.
ගොනුවක් කියවීම සඳහා, අපි එය **'r' (read)** ආකාරයෙන් විවෘත කළ යුතුය.
අපේ පරිගණකයේ `my_notes.txt` නමින් පහත අන්තර්ගතය සහිත ගොනුවක් ඇතැයි සිතමු:
Learning Python in Sinhala.
This is the second line of the file.
File handling is an important topic.
try:
with open('my_notes.txt', 'r') as file:
content = file.read()
print("--- File Content ---")
print(content)
print("--------------------")
except FileNotFoundError:
print("Error: The file 'my_notes.txt' was not found!")
විශාල ගොනු සඳහා, සම්පූර්ණ ගොනුවම එකවර මතකයට (memory) ගැනීම වෙනුවට, පේළියෙන් පේළිය කියවීම වඩාත් කාර්යක්ෂම වේ.
try:
with open('my_notes.txt', 'r') as file:
for line in file:
print(line.strip()) # .strip() මගින් අනවශ්ය හිස්තැන් සහ නව පේළි ඉවත් කරයි
except FileNotFoundError:
print("Error: The file 'my_notes.txt' was not found!")
ගොනුවකට ලිවීමට ප්රධාන ආකාර දෙකක් ඇත:
'w' (Write - ලිවීම):** ගොනුවේ පැවති සියලුම දත්ත මකා අලුතින් ලියයි. ගොනුව නොමැති නම්, අලුත් ගොනුවක් නිර්මාණය වේ.'a' (Append - අගට එකතු කිරීම):** පැවති දත්ත නොමැකී, අලුත් දත්ත ගොනුවේ අවසානයට එකතු වේ. ගොනුව නොමැති නම්, අලුත් ගොනුවක් නිර්මාණය වේ.with open('shopping_list.txt', 'w') as file:
file.write("Milk\n")
file.write("Eggs\n")
file.write("Bread")
with open('shopping_list.txt', 'a') as file:
file.write("\nButter")
ගොනු සමග වැඩ කරන ආකාරය දැන් ඔබට පැහැදිලියි. නමුත් අපේ වැඩසටහන් ක්රියාත්මක වන විට අනපේක්ෂිත දෝෂ (errors) ඇතිවිය හැක.