במדריך זה, נתעסק בפעולות קבצים שונות ב-Python. נלמד כיצד להשתמש ב-Python כדי לקרוא קובץ, לכתוב לקובץ, למחוק קבצים ועוד. לכן, בלי שום השהייה, בואו נתחיל.
עבודה עם קבצים ב-Python
במדריך הקודם, השתמשנו בקונסולה לקבלת קלט. כעת, נשתמש בקובץ לקבלת קלט. זה אומר שנקרא ונכתוב לקבצים. כדי לעשות זאת, עלינו לבצע כמה שלבים. אלה הם
- פתח קובץ
- קבל קלט מהקובץ הזה / כתוב פלט לקובץ
- סגור את הקובץ
נלמד גם פעולות שימושיות כמו העתקת קובץ ומחיקת קובץ.
למה נדרשות פעולות קבצים ב-Python?
כאשר עובדים עם קבצי נתונים גדולים בבעיה של למידת מכונה, עבודה עם קבצים היא צורך בסיסי. מכיוון ש-Python הוא שפת תכנות נפוצה למדעי הנתונים, עליך להיות מיומן בפעולות השונות ש-Python מציעה.
אז, בואו נכנס לפרטים על כמה מהפעולות על קבצים ב-Python כאן.
1. פתיחת קובץ ב-Python עם פונקציית open()
השלב הראשון לעבוד עם קבצים ב-Python הוא ללמוד כיצד לפתוח קובץ. ניתן לפתוח קבצים באמצעות השיטה open()
.
פונקציית ה- open() ב-Python מקבלת שני ארגומנטים. הראשון הוא שם הקובץ יחד עם הנתיב המלא והשני הוא מצב פתיחת הקובץ.
למטה, מפורטים כמה מהמצבים הנפוצים לקריאת קבצים:
- ‘r’ : מצב זה מציין כי הקובץ ייפתח לקריאה בלבד
- ‘w’ : מצב זה מציין כי הקובץ ייפתח לכתיבה בלבד. אם הקובץ בשם זה אינו קיים, יווצר קובץ חדש
- ‘a’ : מצב זה מציין כי הפלט של התוכנית יתווסף לפלט הקודם של הקובץ
- ‘r+’ : מצב זה מציין כי הקובץ ייפתח לקריאה ולכתיבה
בנוסף, עבור מערכת ההפעלה Windows, ניתן להוסיף 'b' כדי לגשת אל הקובץ במצב בינארי. זה כך מכיוון ש-Windows מבדילה בין קובץ טקסט בינארי לבין קובץ טקסט רגיל.
נניח, שהנחנו קובץ טקסט בשם 'file.txt' באותו התיקייה שבה ממוקמת הקוד שלנו. כעת נרצה לפתוח את הקובץ הזה.
אך פונקציית open(filename, mode) מחזירה אובייקט קובץ. עם אובייקט הקובץ ניתן להמשיך לבצע פעולות נוספות.
#directory: /home/imtiaz/code.py
text_file = open('file.txt','r')
#Another method using full location
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)
print('Second Method')
print(text_file2)
פלט הקוד הבא יהיה
================== RESTART: /home/imtiaz/code.py ==================
First Method
Second Method
>>>
2. קריאה וכתיבה לקבצים בפייתון
פייתון מציעה שיטות שונות לקריאה וכתיבה לקבצים, כאשר כל פונקציה מתנהגת באופן שונה. דבר חשוב לשים לב אליו הוא מצב פעולות הקובץ. כדי לקרוא קובץ, עליך לפתוח אותו במצב קריאה או כתיבה. בעוד כדי לכתוב לקובץ בפייתון, עליך שהקובץ יהיה פתוח במצב כתיבה.
הנה כמה מהפונקציות בפייתון שמאפשרות לך לקרוא ולכתוב לקבצים:
- read() : פונקציה זו קוראת את הקובץ כולו ומחזירה מחרוזת
- readline() : פונקציה זו קוראת שורות מהקובץ ומחזירה כמחרוזת. היא מביאה את השורה n, אם הוא נקרא בפעם ה-n.
- readlines() : פונקציה זו מחזירה רשימה שבה כל איבר הוא שורה יחידה בקובץ.
- readlines() : פונקציה זו מחזירה רשימה שבה כל איבר הוא שורה יחידה בקובץ.
- write() : פונקציה זו כותבת סדרה קבועה של תווים לקובץ.
- writelines() : פונקציה זו כותבת רשימת מחרוזות.
- append() : פונקציה זו מוסיפה מחרוזת לקובץ במקום לדרוס את הקובץ.
בואו ניקח לדוגמה קובץ "abc.txt", ונקרא שורות בודדות מהקובץ בעזרת לולאת for:
#לפתוח את הקובץ
text_file = open('/Users/pankaj/abc.txt','r')
#לקבל את רשימת השורות
line_list = text_file.readlines();
#לכל שורה מהרשימה, להדפיס את השורה
for line in line_list:
print(line)
text_file.close() #אל תשכחו לסגור את הקובץ
פלט:
עכשיו, שאנו יודעים איך לקרוא קובץ בפייתון, בואו נמשיך ונבצע פעולת כתיבה כאן עם הפונקציה writelines().
#לפתוח את הקובץ
text_file = open('/Users/pankaj/file.txt','w')
#לאתחל רשימה ריקה
word_list= []
#לבצע איטרציה ארבע פעמים
for i in range (1, 5):
print("Please enter data: ")
line = input() #לקחת קלט
word_list.append(line) #להוסיף לרשימה
text_file.writelines(word_list) #לכתוב ארבע מילים לקובץ
text_file.close() #אל תשכחו לסגור את הקובץ
פלט
3. העתק קבצים ב-Python באמצעות שיטת shutil()
ניתן להשתמש ב־מודול shutil ב-Python כדי להעתיק קבצים. יש לנו אפשרות לבצע פעולות העתקה והזזה ב-Python על קבצים שונים. בואו נראה דוגמה לכך:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
#דרך נוספת להעתיק קובץ
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
4. מחק קבצים ב-Python באמצעות שיטת shutil.os.remove()
המודול shutil של Python מציע את השיטה remove() למחיקת קבצים ממערכת הקבצים. בואו נראה איך ניתן לבצע פעולת מחיקה ב-Python.
import shutil
import os
#שתי דרכים למחוק קובץ
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
5. סגור קובץ פתוח ב-Python באמצעות השיטה close()
כאשר אתה פותח קובץ בפייתון, זה חשוב מאוד לסגור את הקובץ לאחר שאתה מבצע את השינויים. זה שומר על כל השינויים שעשית קודם לכן, מסיר את הקובץ מהזיכרון, ומונע קריאות או כתיבות נוספות בתוכנית.
דקדוק לסגירת קובץ פתוח בפייתון:
fileobject.close()
אם נמשיך מהדוגמאות הקודמות שלנו שבהן קראנו קבצים, הנה איך אתה סוגר את הקובץ:
text_file = open('/Users/pankaj/abc.txt','r')
# פעולות קובץ כלשהן כאן
text_file.close()
בנוסף, אתה יכול להימנע מסגירת קבצים באופן ידני אם אתה משתמש בבלוק with. ברגע שבלוק with מתבצע, הקבצים נסגרים ולא זמינים יותר לקריאה וכתיבה.
6. FileNotFoundError בפייתון
זה נפוץ לקבל את השגיאה FileNotFoundError כאשר עובדים עם קבצים בפייתון. ניתן להימנע מזה בקלות על ידי הזנת נתיבים מלאים כאשר יוצרים את אובייקט הקובץ.
File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'
כדי לתקן את השגיאה FileNotFoundError, פשוט צריך לוודא שהנתיב שהזכרת לשיטת פתיחת הקובץ נכון.
מסקנה
אלה הפעולות על קבצים ב-Python. ישנם עוד הרבה דרכים שבהן ניתן להשתמש בקבצים ב-Python, כולל קריאת נתונים מקבצי CSV ועוד. הנה מאמר שיכול לעזור לך להשתמש ב-מודול Pandas כדי ל-קרוא נתונים מקבצי CSV ב-Python.
I hope you enjoyed reading the article! Happy learning 🙂
**הפניות:
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy