کارکردن لەگەڵ پەڕگەکان (File Handling)
وانەی پێنجەم: چۆنیەتی کارکردن لەگەڵ فایلەکان لە پایثۆن. چۆنیەتی خوێندنەوەی داتا لە فایلەکان و نووسینی داتا بۆ فایلەکان.
فێربوونی پایتۆن
February 1, 2025

وانە پێنجەم: کارکردن لەگەڵ پەڕگەکان (File Handling)
بەخێربێیت بۆ وانە پێنجەم لە سلسلەی فێربوونی زمانی پایثۆن! لەم وانەیەدا، ئێمە بە تێکچوونی چۆنیەتی کارکردن لەگەڵ پەڕگەکان لە پایثۆندا دەچینە سەر. ئێمە فێردەبین چۆن داتا لە پەڕگەکان بخوێنین و چۆن داتا بە نووسین بۆ پەڕگەکان دابنێین. ئەم مەرجانە زۆر گرنگن کاتێک بەرنامەکانی پێشکەوتوو دروست دەکەیت کە پێویستیان بە هێندەکردنی داتا بە شێوەی کۆدەکەیە یان خوێندنی داتا لە پەڕگەیەکی دەرەکی.
1. کراوەکردنی پەڕگەکان
بۆ کارکردن لەگەڵ پەڕگەکان لە پایثۆندا، ئێمە بەکار دەهێنین فانکشنی open() . ئەم فانکشنە ڕێڕەوی پەڕگە و چۆنیەتی کراوەکردنی (خوێندن یان نووسین) وەک پارامەترە بنچینەییەکان وا دەگرێت.
أ. جۆرە کراوەکردنەکان
- "r" : جۆری خوێندن (Read). ئەمە جۆری بنچینەییە. ئەگەر پەڕگە بوونی نەبێت، هەڵەیەک دەردەچێت.
- "w" : جۆری نووسین (Write). ئەگەر پەڕگە بوونی نەبێت، دروست دەکات؛ ئەگەر بوونی هەبێت، ناوەڕاستی دەسڕدرێتەوە.
- "a" : جۆری زیادکردن (Append). داتای نوێ بۆ کۆتایی پەڕگە زیاد دەکات بە بێ سڕینەوەی ناوەڕاستی ئێستاش.
- "x" : جۆری دروستکردن (Create). پەڕگەکە تەنها ئەگەر بوونی نەبێت دروست دەکات. ئەگەر بوونی هەبێت، هەڵەیەک دەردەچێت.
# کراوەکردنی پەڕگە بۆ خوێندن
file = open("example.txt", "r")
# کراوەکردنی پەڕگە بۆ نووسین
file = open("example.txt", "w")
ب. داخڵکردنی پەڕگە
دوای تەواوبوونی کار لەگەڵ پەڕگە، پێویستە بە close() داخڵ بکەیت.
file = open("example.txt", "r")
# چەند کارێک...
file.close()
تێبینی: باشترین ڕێگا بۆ کارکردن لەگەڵ پەڕگەکان بەکارهێنانی with ە، چونکە دڵنیایی دەدات کە پەڕگەکە بە شێوەی خۆکار داخڵ دەبێتەوە، تەنانەت ئەگەر هەڵەیەک لە کاتی ڕوولەکردندا ڕوویدا.
with open("example.txt", "r") as file:
# چەند کارێک...
pass # نابێت پەڕگەکە بە دەستی داخڵ بکرێت
2. خوێندنی داتا لە پەڕگەکان
أ. خوێندنی ناوەڕاستی تەواو
ئێمە دەتوانین ناوەڕاستی پەڕگەیەک بە تەواوی بخوێنین بە بەکارهێنانی read() .
with open("example.txt", "r") as file:
content = file.read()
print(content)
ب. خوێندنی ڕیزەکان یەکێک لە دوای یەک
ئەگەر بەرنامەکەت پێویست بێت ڕیزەکان بە شێوەی یەکێک لە دوای یەک بخوێنێت، ئێمە دەتوانین بەکاربێنین readline() یان دوورەی for بۆ دووبارەبوونی لە ناو پەڕگە.
# خوێندنی ڕیزی یەکەم تەنها
with open("example.txt", "r") as file:
first_line = file.readline()
print(first_line)
# خوێندنی هەموو ڕیزەکان
with open("example.txt", "r") as file:
for line in file:
print(line.strip()) # strip() شوێنە خالیەکان و ڕیزەکانی نوێ دەسڕێتەوە
ج. خوێندنی هەموو ڕیزەکان وەک لیست
ئێمە دەتوانین هەموو ڕیزەکان لە پەڕگەکە وەک لیست بخوێنین بە بەکارهێنانی readlines() .
with open("example.txt", "r") as file:
lines = file.readlines()
print(lines) # ئەنجام: لیستێک کە هەر ڕیزێک وەک تەنکێکی لیستە
3. نووسینی داتا بۆ پەڕگەکان
أ. نووسین بۆ پەڕگەیەکی نوێ
ئەگەر بەرنامەکەت پێویست بێت داتای نوێ بۆ پەڕگەیەک بنووسێت، ئێمە دەتوانین بەکاربێنین جۆری نووسین "w".
with open("example.txt", "w") as file:
file.write("Hello, World!\n")
file.write("This is a new line.")
ب. زیادکردنی داتا بۆ پەڕگەیەکی دیاریکراو
ئەگەر بەرنامەکەت پێویست بێت داتای نوێ بۆ کۆتایی پەڕگەیەک زیاد بکات بە بێ سڕینەوەی ناوەڕاستی ئێستاش، ئێمە دەتوانین بەکاربێنین جۆری زیادکردن "a".
with open("example.txt", "a") as file:
file.write("\nThis line was appended.")
4. کارکردن لەگەڵ پەڕگەیە دوانیەکان
لەگەڵ پەڕگە نووسەییەکان کە دەرەوە، ئێمە دەتوانین بەکاربێنین پەڕگەیە دوانیەکان وەک وێنەکان یان پەڕگەیە کۆمپرێسکراوەکان. ئەمە بەکارهێنانی جۆرەکانی "rb" (خوێندنی پەڕگە دوانیەکان) و "wb" (نووسینی پەڕگە دوانیەکان).
أ. خوێندنی پەڕگەیەکی دوانی
with open("image.jpg", "rb") as file:
binary_data = file.read()
ب. نووسینی پەڕگەیەکی دوانی
with open("new_image.jpg", "wb") as file:
file.write(binary_data)
5. کارەکانی کارا
کارەکانی ١: خوێندن و پیشاندانی ناوەڕاستی پەڕگەیەکی نووسەیی
# وەک فرض، پەڕگەیەکی ناوی example.txt هەیە کە نووسەیەکی تێدایە
with open("example.txt", "r") as file:
for line in file:
print(line.strip())
کارەکانی ٢: دروستکردنی پەڕگە و نووسینی داتا لە ناویدا
# دروستکردنی پەڕگەیەکی نوێ و نووسینی چەند داتایەک
with open("data.txt", "w") as file:
file.write("Name: Ali\n")
file.write("Age: 25\n")
file.write("City: Riyadh\n")
# خوێندنی پەڕگە دوای نووسین
with open("data.txt", "r") as file:
print(file.read())
کارەکانی ٣: زیادکردنی داتا بۆ پەڕگەیەکی دیاریکراو
# زیادکردنی داتای نوێ بۆ پەڕگەیەکی دیاریکراو
with open("data.txt", "a") as file:
file.write("Country: Saudi Arabia\n")
# خوێندنی پەڕگە دوای زیادکردن
with open("data.txt", "r") as file:
print(file.read())
6. کارکردن لەگەڵ استثناکان
کاتێک بەکار دەهێنیت پەڕگەکان، لەوانەیە هەڵەکانی وەک بوونی نەبینی پەڕگە یان بەڕێوەبردنی ئەجازەت نەبینی بەر بە دەست بھێنێت. بۆیە، باشە بەکاربهێنین استثناکان (Exceptions) بۆ شاردنی ئەم حالەتە.
try:
with open("nonexistent_file.txt", "r") as file:
content = file.read()
except FileNotFoundError:
print("پەڕگەکە بوونی نییە!")
except PermissionError:
print("ئەجازەت بۆ بەرگرتنی پەڕگە نییە!")
7. پێشنیارەکان لەسەر کارکردن لەگەڵ پەڕگەکان
-
بەکارهێنانی with: هەمیشە بەکاربهێنە with کاتێک بەکار دەهێنیت پەڕگەکان، چونکە دڵنیایی دەدات کە پەڕگەکە بە شێوەی خۆکار داخڵ دەبێتەوە.
-
ڕەتکردنەوەی نووسینی زۆر: کاتێک بەرنامەکەت دەنووسرێت بۆ پەڕگەیەکی گەورە، هەوڵبدە کەمترین ژمارەی نووسینەکان بکەیت بۆ باشترکردنی کارەکە.
-
سەیرکردنی بوونی پەڕگە: پێش هەوڵدان بۆ خوێندنی پەڕگە، دڵنیابە لە بوونی بەکارهێنانی os.path.exists() .
import os
if os.path.exists("example.txt"):
with open("example.txt", "r") as file:
print(file.read())
else:
print("پەڕگەکە بوونی نییە!")
کۆتایی
لەم وانەیەدا، ئێمە فێر بووین چۆن داتا لە پەڕگەکان بخوێنین و چۆن داتا بە نووسین بۆ پەڕگەکان دابنێین بەکارهێنانی پایثۆن. ئەم مەرجانە زۆر گرنگن کاتێک پێویستت بێت داتا بە شێوەی کۆدەکەیە هێندە بکەیت یان خوێندنی داتا لە پەڕگەیەکی دەرەکی.
لە وانەی داهاتوودا، ئێمە بیردەردەچینەوە بۆ فانکشنەکان (Functions) بە زیاتری تایبەتمەندی و چۆنیەتی ڕێکخستنی کۆد بە بەکارهێنانیان. بەردەوام بمێنە لە چارەسەرکردن و هیچ شک نەکە لە پرسینەوەی پرسیارەکانت ئەگەر پێویست بە یارمەتیت هەبێت!
🚀 ئێستاش ئەتوانیت بەردەوام بمێنە لە ڕێگایەکی راستەقینە بۆ بوونی بەرنامەنووسێکی پێشکەوتوو!
کۆمێنتەکان

هیچ کۆمێنتێک نییە
تکایە بچۆرە ژوورەوە بۆ ئەوەی کۆمێنتێک بنوسیت