Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

קורס Python – פרק 16 – קבצים Files I\O

בפרק זה של קורס Python 3, נלמד את הפונקציות הבסיסיות החשובות ביותר לקבצים Files I\O, שבאמצעותן נוכל להפעיל מניפולציות על קבצים

 הדפסת פלט על גבי המסך

הדרך הפשוטה ביותר להדפיס פלט על גבי המסך, היא באמצעות שימוש בפונקציה ()print אשר ניתן לכתוב ביטוי אחד או יותר בתוך הסוגריים על מנת להדפיס אותם, כאשר כל ביטוי מסומן בגרשיים משני צדדיו, ופסיק מפריד בין ביטוי לביטוי. פונקציה זו הופכת את התווים שהזנו לה למחרוזת, ולאחר מכן מדפיסה לנו פלט על גבי המסך:


print ("Hello, world!", "Hello, Python!")

!Hello, world! Hello, Python

קריאת קלט מהמקלדת

על מנת לקרוא קלט מהמקלדת עלינו להשתמש בפונקציה ( )input. בתוכנית שלפניכם, תתבקשו להזין מספר. משום שמספר זה נחשב כמחרוזת, עלינו להמיר אותו למספר int, על מנת שנוכל לבצע בו פעולות אריתמטיות, ולאחר מכן בעזרת משפטי תנאי נבדוק אם המספר שהוזן הוא קטן או גדול מ-10:


x = int(input("Number:"))
 
if x<10:
   print("Your number is smaller then 10");
elif x>10:
   print("Your number is bigger then 10");
else:
   print("Your number is 10");

פתיחה וסגירה של קבצים

שפת Python מספקת את כל הפונקציות הבסיסיות למניפולציה על קבצים. ניתן להפעיל את רוב המניפולציות על ידי שימוש באובייקט קובץ file.

פתיחה ( )open

לפני שאנו מתחילים לקרוא או לכתוב בקובץ, עלינו קודם לפתוח אותו באמצעות הפונקציה ( )open. פונקציה זו יוצרת אובייקט קובץ file שבו נשתמש כדי לקרוא לפונקציות ייחודיות אחרות שנתמכות על ידיו, לפי התחביר הבא:


file object = open(file_name [, access_mode][, buffering])

אלו הם פרטי הפרמטרים:

file_name – מחרוזת המכילה את שם הקובץ שברצוננו לגשת אליו

access_mode – ניתן להיכנס לקובץ במספר מצבי גישה כמו למשל read, write וכדומה. פרמטר זה הוא אופציונלי וכברירת מחדל מצב הגישה הוא read.

buffering – אם הערך הוא 0 לא מבוצע תהליך buffering, אם 1 אז מתבצע תהליך buffering בזמן פתיחת הקובץ, כאשר כל מספר שגדול מ-1 יהיה גודל ה-buffering.

ניתן לפתוח קובץ במצבים הבאים:

מצב תיאור
r פותח קובץ לקריאה בלבד, זהו מצב הברירת מחדל של פתיחת קובץ
rb פותח קובץ לקריאה בלבד בפורמט בינארי
+r פותח קובץ גם לקריאה וגם לכתיבה
+rb פותח קובץ גם לקריאה וגם לכתיבה בפורמט בינארי
w פותח קובץ לכתיבה בלבד, משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
wb פותח קובץ בפורמט בינארי לכתיבה בלבד, משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
+w פותח קובץ גם לכתיבה וגם לקריאה, משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
+wb פותח קובץ בפורמט בינארי גם לכתיבה וגם לקריאה, משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
a פותח קובץ לשם הוספה appending, ההוספה תחל מסוף הקובץ. משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
ab פותח קובץ בפורמט בינארי לשם הוספה appending, ההוספה תחל מסוף הקובץ. משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
+a פותח קובץ לשם הוספה appending וקריאה, ההוספה תחל מסוף הקובץ. משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים
+ab פותח קובץ בפורמט בינארי לשם הוספה appending וקריאה, ההוספה תחל מסוף הקובץ. משכתב את הקובץ אם קיים, יוצר קובץ חדש אם לא קיים

תכונת אובייקט קובץ file

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

  • file.closed – בודק אם הקובץ סגור. מחזיר ערך אמת אם  הקובץ סגור, מחזיר ערך כזב אם הקובץ פתוח.
  • file.mode – מחזיר את המצב שבו הקובץ נפתח
  • file.name – מחזיר את שם הקובץ

# Open a file named test.txt
fileOpen = open("test.txt", "wb")
print ("Name of the file: ", fileOpen.name)
print ("Closed or not : ", fileOpen.closed)
print ("Opening mode : ", fileOpen.mode)
fo.close()

Name of the file: test.txt
Closed or not : False
Opening mode : wb

סגירה ( )close

ניתן לסגור קבצים באמצעות הפונקציה ( )close כך שלאחר מכן לא יהיה ניתן לכתוב בתוכם:


fileOpen = open("test.txt", "wb")
print ("Name of the file: ", fileOpen.name)

fileOpen.close()

Name of the file: test.txt

קריאה וכתיבה בקבצים

לאובייקט קובץ file יש מגוון של פונקציות ייחודיות שיכולות להקל עלינו. על מנת לקרוא ולכתוב בקבצים נשתמש בפונקציות ( )read ו-( )write.

כתיבה בקובץ ( )write

ניתן להוסיף כל מחרוזת לקובץ file, יש לציין כי מחרוזות בשפת python יכולות להכיל נתונים בינאריים.


fileOpen = open("test.txt", "w")
fileOpen.write( "Hello, world!\nHello, Python!\n")

fileOpen.close()

קריאה מקובץ ( )read

ניתן לקרוא כל מחרוזת מקובץ file, ויש לציין את מספר הבייטים שברצוננו לקרוא מתוך הקובץ:

 

fileOpen = open("test.txt", "r+")
str = fileOpen.read(10)
print ("String is:", str)

fileOpen.close()

String is: Hello, wor

מיקומי קבצים

הפונקציה ( )tell תאמר לנו באיזה מיקום בקובץ בביטים אנו נמצאים כרגע. ניקח שוב את אותו הקובץ שיצרנו ונבדוק:


fileOpen = open("test.txt", "r+")
str = fileOpen.read(10)
print ("String is: ", str)

position = fileOpen.tell()
print ("file position: ", position)

fileOpen.close()

String is: Hello, wor
position: 10

שינוי שמות ומחיקת קבצים

המודול os בשפת Python מקנה לנו גישה לפונקציות ייחודיות שנועדו לפעולות עריכת קבצים מסוג שינוי שם או מחיקה. כמובן שיש צורך לייבא את המודול בתחילת התוכנית לשם כך.

שינוי שם ( )rename

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


import os

os.rename( "test.txt", "test1.txt" )

הסרת קובץ ( )remove

ניתן להסיר קובץ על ידי שימוש בפונקציה הייחודית ( )remove, יש להזין את שם הקובץ הרצוי אל תוך הסוגריים:


import os

os.remove("text56.txt")

תיקיות Directories

קבצים בדרך כלל מאורגנים בתיקיות, ולשפת Python יש את הכלים המתאימים על מנת לנהל תיקיות. למודול os יש פונקציות ייחודיות שבאמצעותן ניתן למחוק ליצור או לשנות תיקיות.

יצירת תיקייה חדשה ( )mkdir

ניתן ליצור תיקייה חדשה בתוך התיקייה שבה אנו נמצאים כעת על ידי שימוש בפונקציה הייחודית ( )mkdir. יש להזין אל תוך הסוגריים את השם המבוקש:


import os

os.mkdir("test")

שינוי תיקייה ( )chdir

ניתן לשנות את התיקייה שבה אנו נמצאים על ידי שימוש בפונקציה הייחודית ( )chdir. יש להזין את שם התיקייה המבוקשת אל תוך הסוגריים.


import os

os.chdir("/test/newdir")

הצגת התיקייה הנוכחית ( )getcwd

על מנת להציג את התיקייה שבה אנו נמצאים יש להשתמש בפונקציה הייחודית ( )getcwd.


import os

os.getcwd()

הסרת תיקייה ( )rmdir

על מנת להסיר תיקייה יש להשתמש בפונקציה הייחודית ( )rmdir. לפני שמסירים תיקייה יש להסיר את כל התוכן שלה.


import os

os.rmdir( "/tmp/test"  )

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

רוצים לשתף את המדריך?

שיתוף ב facebook
שיתוף ב twitter
שיתוף ב telegram
שיתוף ב whatsapp
שיתוף ב linkedin
שיתוף ב tumblr
שיתוף ב email
שיתוף ב reddit
שיתוף ב skype
שיתוף ב vk

אהבתכם את המדריך? פתר לכם תקלה?

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

כתיבת תגובה