מערכת בנק 2.0 - יצירת קובץ חדש

במחברת 3 של שבוע 3 (Files), רשום:

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

הקוד שלי בבדיקת המשתמש החדש והכנסתו לקובץ הסיסמאות, לא כולל פתיחת קובץ לכתיבה אלא רק read ו-append.

איך אפשר ליצור קובץ bank_passwd.txt חדש?
כרגע הוא כותב לי שגיאה שהקובץ לא קיים כשאני מריץ את הקוד

אתה יכולה לבצע פעולה של כתיבה והיא תיצור קובץ חדש.

נכון.

אבל אם אשתמש בפעולה של כתיבה, בכל פעם שאצרף משתמש חדש לבנק, הקובץ יימחק
(כי פעולת הכתיבה מוחקת את מה שהיה קיים בקובץ)

אפשר לבצע כתיבה פעם אחת רק לשם יצירת הקובץ
ולאחר מכן לפתוח את הקובץ בצורה של append ורק להוסיף

להוריד זה כבר סיפור אחר (:

לייק 1

היי אביעד,
גם אני נתקלתי בבעיה הזו.
בתחילת הפונקציה register_to_bank אני מבצעת פתיחה לראשונה של הקובץ ובהמשך באמת קוראת לו רק ב- append. הבעיה היא שכל פעם שאני מריצה את התא (כדי להוסיף משתמשים, לדוגמה) הפקודה רצה ומוחקת את תוכן הקובץ. האם יש לזה פתרון?
כרגע פשוט הרצתי את התא פעם ראשונה עם הפקודה, ואח"כ עשיתי # לפני השורה.

איזו פקודה מוחקת לך את הכל הappend ?

התייעצתי והסתדרתי.
העניין היה שהנחתי שחלק מהמשימה היא כל פעם מחדש לפתוח את הקובץ מ-0. אז בהרצה הראשונה פקודת open(“file.txt”,“w”) אכן פתחה את הקובץ שלא היה קיים, ובכל ההרצות הבאות היא מחקה את התוכן שהכנסתי לו (כי הוא כבר היה קיים).
מה שהבנתי אח"כ זה שכנראה צריך להקים מ-0 את הקובץ פעם אחת בלבד (למשל בתא אחר) ואח"כ לממש את פונקציית register_to_bank בהנחה שהקובץ קיים ורק צריך לעשות לו append.

לייק 1

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

לייק 1