פייתון/פייתון גרסה 3/רשימת פונקציות מערכת built-in/פונקציות קלט ופלט של מסמכים
הדוגמה תהיה עם המסמך בעל הכיתוב:
Otto I, traditionally known as Otto the Great, was German king .
He was the oldest son of Henry I the Fowler and Matilda.
פונקציות | סוג | הסבר | דוגמה |
---|---|---|---|
פונקצית open() | פונקציות קלט ופלט של מסמכים | פונקצית הקוראת לפייתון לקרוא נתונים ממסך או לכתוב בו | |
פונקצית close() | פונקציות קלט ופלט של מסמכים | פונקצית הקוראת לפייתון להפסיק לקרוא נתונים ממסך או לכתוב בו | |
פונקצית closed() | פונקציות קלט ופלט של מסמכים | פונקצית המחזירה ערך בוליאני בהתאם למצבה של פונקצית Open: האם היא נסגרה או נפתחה | with open('otto.txt','r+') as f:
print(f.closed)
>>>True
|
פונקצית with open | פונקציות קלט ופלט של מסמכים | פונקצית הקוראת לפייתון לקרוא נתונים ממסך או לכתוב בו | |
read() | פונקציות קלט ופלט של מסמכים | פונקציה המאפשרת קריאה של תווים מתוך מסמך. בכל קריאה "תו הקריאה והכתיבה" (iterator) מתקדם עם הקריאה. אם נבצע קריאה אחר קריאה, יגיע בשלב מסוים התו, לסוף הטקסט, end-of-file (ובקיצור:EOF), ולכן יחזיר מחרוזת ריקה. | with open('otto.txt','r+') as f:
print(f.read(10))
>>> Otto I, tr
|
readline() | פונקציות קלט ופלט של מסמכים | פוקנציה הקוראת את השורה הראשונה בכל מסמך. אם נעזר בפונקציה זו על for, כל שורה תהיה ה-"i" | with open('otto.txt','r+') as f:
print(f.readline())
>>>Otto I, traditionally known as Otto the Great, was German king .
|
list() | פונקציות קלט ופלט של מסמכים | פונקציה המדפיסה את כל השורות של הקובץ. | >>>with open('otto.txt','r+') as f:
print(list(f))
print(type(list(f)))
['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda.']
<class 'list'>
|
readlines() | פונקציות קלט ופלט של מסמכים | פונקציה הקוראת את כל השורות של הטקסט. גם במקרה זה הטיפוס המתקבל הוא רשימה. | >>>with open('otto.txt','r+') as f:
print(f.readlines())
print(type(f.readlines()))
['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda.']
<class 'list'>
|
write() | פונקציות קלט ופלט של מסמכים | >>>with open('otto.txt','r+') as f:
print(f.readlines())
f.write('text121212')
['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda.']
[]
נבצע הרצאה ראשונה ושוב, הרצה נוספת: >>>with open('otto.txt','r+') as f:
print(f.readlines())
['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda.text121212']
| |
writelines() | פונקציות קלט ופלט של מסמכים | פונקציה הכותבת רשימות קצרות לתוך קובץ. | L=['text1', 'text2\n', 'text3']
with open('otto.txt','r+') as f:
print(f.readlines())
f.writelines(L)
>>>['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda.']
[]
with open('otto.txt','r+') as f:
print(f.readlines())
>>>['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda.text1text2\n', 'text3']
ניתן להיעזר בפונקצית join על מנת להכניס רווח בין כל פריט ברשימה L=['text1', 'text2', 'text3']
with open('otto.txt','r+') as f:
print(f.readlines())
f.writelines('\n'.join(L))
>>>['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matilda']
with open('otto.txt','r+') as f:
print(f.readlines())
>>>['Otto I, traditionally known as Otto the Great, was German king .\n', 'He was the oldest son of Henry I the Fowler and Matildatext1\n', 'text2\n', 'text3']
|
tell() | פונקציות קלט ופלט של מסמכים | הפונקציה מציינת למשתמש היכן מיקומו בקובץ, דהינו באיזה תו הוא נמצא. | >>>with open('otto.txt','r+') as f:
print(f.tell())
0
כלומר המשתמש בנמצא בתו הראשון של הקובץ. |
seek() | פונקציות קלט ופלט של מסמכים | הזזת תו "הקריאה והכתיבה" (iterator) מהמקום בו הוא נמצא אל תו אחר במחרוזת.
|
>>>with open('otto.txt','r+') as f:
print(f.tell())
f.seek((232))
print(f.tell())
f.seek(0)
f.seek(0,2)
print(f.tell())
0
232
132
|