ניהול קבצים

February 6, 2019

ניהול קבצים

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

כדי לפתוח קובץ חדש או קיים (אם הוא לא קיים פייתון תבין שרוצים לייצר קובץ חדש) אפשר, למשל, לכתוב את הפקודה ("open("filename.txt","w לתוך משתנה נגיד f . הפקודה הזאת תפתח קובץ בשם filename עם סיומת txt. המחרוזת השנייה שמזינים לפקודה open למשל "w" בשביל לכתוב, "r"בשביל לקרוא, "a" בשביל לצרף טקסט בהמשך בלי לדרוס את מה שכבר כתבנו ועוד כמה שנזכיר בהמשך. לאחר מכן אפשר לכתוב לתוך הקובץ באמצעות הפקודה write או לקרוא מה שכתבנו באמצעות הפקודה read ונראה איך זה עובד. בסוף כל פעולה צריך לסגור את הקובץ באמצעות הפקודה ()close אחרת בזמן, שפייתון מנקה אשפה אחת לכמה זמן (מנקה כל מיני אובייקטים ששום דבר לא מצביע עליהם), היא עלולה לנקות גם את הקובץ הזה!

 

f=open("myfile.txt","w")
f.write("my first line ever")
f.close()

f= open("myfile.txt","r")
print(f.read())
f.close()

>>>

my first line ever

 

 

פתחנו קובץ חדש   בשם myfile המיועד לכתיבה בלבד ולכן ה – mode שבחרנו היה "w". כתבנו את השורה "my first line ever" מאברוק. סגרנו את הקובץ ! בהמשך רצינו לראות את התוכן של הקובץ, שוב כתבנו את הפקודה open הפעם ב-mode "r" לקריאה בלבד שלא נכתוב משהו בטעות. הדפסנו את מה שיוצא מהמתודה read והופה. הדפסנו את מה שכתבנו.

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

 

with open("myfile.txt","w") as f:
    f.write("my first line\n")
with open("myfile.txt", "a") as f:
    f.write("my second line\t")
    f.write("tab in second")
with open("myfile.txt","r") as f:
    for line in f:
        print(line)

 

>>>

my first line

my second line    tab in second

 

 

כאן כבר עשינו כמה דברים אחרת, ה- syntax הוא with open והמשתנה שלנו f (שהוא לא ממש משתנה אלא עטיפה לקובץ הטקסט שלנו) נכתב בצורה :as f ושורה מתחת, בהזחה ימינה, כתבנו את מה שאנו רוצים לכתוב כטקסט בשורה הראשונה, בתוספת הוראה לרדת לשורה הבאה n\  משם נמשיך בפעם הבאה שכתבו משהו. זהו, אין צורך להורות על סגירת התיק, הוא נסגר אוטומטית כמעט כמו פרשות שחיתות בפוליטיקה.

בפעם השנייה שפתחנו את הקובץ, על מנת שלא לדרוס את מה שכתבנו, פתחנו ב- "mode "a מהמילה append לצרף למה שכתוב ולא במקום. בסוף המשפט הראשון בשורה השנייה הוספנו t\ כדי ליצור רווח (בלי לרדת שורה) למשפט הבא בטקסט שלנו tab in second.

 את קריאת הטקסט ביצענו באמצעות לולאת for העוברת על כל שורה בקובץ.

אפשר לפתוח קבצים מסוגים שונים ואפשר לפתוח אותם במודים אחרים – למשל  +r מאפשר קריאה וכתיבה גם יחד אבל דורס מה שכתבנו קודם לכן. "+a" פותח קובץ חדש אם לא קיים, אם קיים מאפשר גם קריאה, אבל אינו דורס טקסט קודם אם יש, אלא ממשיך להוסיף החל מסוף הטקסט.

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

Please reload

Please reload

רעננו את הדף והקליקו למעבר לנושא הבא: