עבודה עם קבצים בפייתון – מדריך למתחילים עם דוגמאות שלב־אחר־שלב

 

מדריך פייתון: עבודה עם קבצים – למתחילים

הסילבוס הנדרש ע"פ משרד החינוך לתלמידי יד'-הנדסאי אלקטרוניקה


מבוא – מה זה קובץ?

דמיינו שהמחשב שלכם הוא כמו ארון ענק עם הרבה מגירות. כל מגירה היא קובץ שיכול להכיל מידע – כמו טקסט, תמונות, או מוזיקה.

בפייתון, אנחנו יכולים:
1. לפתוח מגירות (קבצים).
2. לקרוא מה שכתוב בהם.
3. לכתוב דברים חדשים.
4. לסגור אותם כשסיימנו.


סוגי קבצים – טקסט נגד בינארי

קבצי טקסט (Text Files)

1. מכילים אותיות, מספרים וסימנים שאנחנו מבינים
2. דוגמאות: .txt, .py, .html
3. כמו מכתב שכתוב בעברית או אנגלית
4. אנו יכולים לקרוא ולהבין את התוכן
5. דוגמה לתוכן של קובץ טקסט:" שלום עולם"!

זהו טקסט שאנחנו מבינים.

קבצים בינאריים (Binary Files)

1. מכילים קוד מחשב מיוחד (0 ו-1).
2. דוגמאות: תמונות (.jpg), מוזיקה (.mp3), סרטונים (.mp4).
3. כמו מכתב שכתוב בשפה סודית של מחשבים.
4. אם ננסה לפתוח בעורך (editor ) את הטקסט נראה רק סימנים מוזרים.


מניפולציות על קבצים

איך עובדים עם קבצים? השלבים הבסיסיים

שלב 1: פתיחת קובץ (open)

				
					file = open("my_file.txt", "r")  # פתיחת קובץ לקריאה

file = open("my_file.txt", "w")  # פתיחת קובץ לכתיבה

file = open("my_file.txt", "a")  # פתיחת קובץ להוספה
				
			

מצבי פתיחה נפוצים:

				
					"r" = Read (קריאה)

"w" = Write (כתיבה)

"a" = Append (הוספה לסוף)
				
			

שלב 2: עבודה עם הקובץ (read)

לאחר שפתחנו קובץ לקריאה, יש מספר דרכים לקרוא ממנו:

				
					content = file.read()  # קריאת כל הקובץ בבת אחת

line = file.readline()  #קריאת שורה אחת בלבד

lines = file.readlines()  #קריאת כל השורות לרשימה
				
			

שלב 3: סגירת הקובץ (close)

				
					file.close() # חשוב מאוד! כמו לסגור את המגירה
				
			

למה זה חשוב?

1. משחרר זכרון במחשב
2. מאפשר לתוכנות אחרות לגשת לקובץ
3. מונע בעיות במערכת ההפעלה


דוגמה ליצירת קובץ:

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

file.write("שורה ראשונה\n")

file.write("שורה שנייה\n")

file.write("שורה שלישית")

file.close()
				
			

דוגמה לקריאת הקובץ:

				
					file = open("demo.txt", "r")
content = file.read()

print("תוכן הקובץ:")
print(content)  #הדפסת תוכן תוכן הקובץ

file.close()  # סגירת הקובץ
				
			
שימו לב לשורה האחרונה בקוד  file.close ==> משמעותה  סגירת קובץ.
 

עבודה עם זרמי מידע – Stream 

Stream (זרם) זה דרך חכמה לקרוא קבצים גדולים. במקום לקרוא הכל בבת אחת, אנחנו קוראים חלק אחר חלק. דמיינו צינור מים – המים זורמים שלב אחר שלב, לא הכל בבת אחת.

אז איך ניגשים לזה בקוד? 

ישנן כמה אפשרויות, דרך לולאת for ודרך לולאת while. 

דרך לולאת while

הסבר: קריאת שורה אחר שורה
מה זה קריאת שורה אחר שורה?

דמיינו שיש לכם ספר עם 1000 עמודים. במקום לקרוא את כל הספר בבת אחת ולשבור את הראש, אתם קוראים עמוד אחד, עוצרים, חושבים, ואז קוראים את העמוד הבא.

זה בדיוק מה שעושים עם קבצים – במקום לקרוא את כל הקובץ בבת אחת, אנחנו קוראים שורה אחת בכל פעם.

הקוד המלא:

				
					file = open("big_file.txt", "r")

line_number = 1

while True:

   line = file.readline()

   if not line:
      break

  print(f"שורה {line_number}: {line.strip()}")
  line_number += 1

file.close()
				
			

לורם איפסום דולור סיט אמט, קונסקטורר אדיפיסינג אלית לפרומי בלוף קינץ תתיח לרעח. לת צשחמי צש בליא, מנסוטו צמלח לביקו ננבי, צמוקו בלוקריה.

				
					file = open("big_file.txt", "r")  #פותחים את הקובץ לקריאה 

line_number = 1  # מתחילים לספור מהשורה הראשונה
				
			

שלב 2: מתחילים לולאה אינסופית

				
					while True:  # לולאה שרצה לנצח עד שנעצור אותה
				
			

למה לולאה אינסופית? כי אנחנו לא יודעים כמה שורות יש בקובץ מראש.

שלב 3: קוראים שורה אחת בכל פעם

				
					line = file.readline()  # הפקודה readline קוראת רק שורה אחת
				
			

מה קורה כאן?

בפעם הראשונה: קוראים את השורה הראשונה
בפעם השנייה: קוראים את השורה השנייה
וכן הלאה…

שלב 4: בודקים אם נגמר הקובץ

				
					if not line:   # אם השורה ריקה זה אומר שהקובץ נגמר
break   # יוצאים מהלולאה
				
			

מה זה "if not line"?
1. אם יש עוד שורות: line מכיל טקסט, אז התנאי לא מתקיים
2. אם אין עוד שורות: line ריק, אז התנאי מתקיים ואנחנו יוצאים

שלב 5: מדפיסים את תוכן השורה

				
					print(f"שורה {line_number}: {line.strip()}")  # מדפיסים את השורה עם מספר line_number += 1  # מעלים את המספר ב-1 (1, 2, 3, 4...)
				
			

מה זה line.strip()?
strip מוחק רווחים מיותרים ושבירות שורה מהתחלה והסוף של השורה.
רוצים ללמוד יותר על הפקודה? לחצו כאן

דוגמה מעשית:

נניח שיש לנו קובץ בשם "example.txt"
עם התוכן הזה:
שלום איך שלומך מה נשמע להתראות

הקוד יעבוד ככה:

פעם 1:

א. קוראים "שלום"
ב. מדפיסים "שורה 1: שלום"
ג. line_number הופך ל-2

פעם 2:

א. קוראים "איך שלומך"
ב. מדפיסים "שורה 2: איך שלומך"
ג. line_number הופך ל-3

פעם 3:

א. קוראים "מה נשמע"
ב. מדפיסים "שורה 3: מה נשמע"
ג. line_number הופך ל-4

פעם 4:

א. קוראים "להתראות"
ב. מדפיסים "שורה 4: להתראות"
ג. line_number הופך ל-5

פעם 5:

א. מנסים לקרוא אבל אין יותר שורות
ב. line הופך ריק
ג. התנאי "if not line" מתקיים
ד. יוצאים מהלולאה עם break

דרך יותר פשוטה – לולאת for

				
					for file = open("my_file.txt", "r")

for line_number, line in enumerate(file, 1): print(f"שורה {line_number}: {line.strip()}")

file.close()
				
			

 

 

בהצלחה רבה!!

אולי יעניין אותך גם...

מדריך מלא לולאות WHILE שרצה מספר קבוע של פעמים

הסבר מקיף על לולאות WHILE שרצה X פעמים

נגישות
error: © תוכן זה שמור באמצעות זכויות יוצרים, אין אפשרות לבצע העתקה. ©