כמה שאלות על הנושא של Files

היי,
הנה קוד שכתבתי ומשום מה לא רץ:
password_file = open(‘http://localhost:8888/edit/resources/passwords.txt’,'r’)
passwords = password_file.read()
print(passwords)

יש לי כמה שאלות על הנושא:

  1. המיקום של הקובץ - מאיפה אני לוקחת אותו? ומיקום של איזה קובץ אני צריכה לספק - מה שפתוח בדף של Jupyter notebook או המיקום של הקובץ ששמור לי פיזית על המחשב?

  2. למה צריך לעשות על המחשב פעמיים את הפעולה של read? הרי בשורה הראשונה של הקוד כבר כתבת ‘r’ משמע אני רוצה לקרוא את הקובץ למה נחוצה גם הפעולה של read()?

  3. אם אני רוצה לגשת לתוכן הקובץ ולבדוק למשל אם מילה מסויימת מופיעה בו על איזה על איזה משתנה אני צריכה להפעיל את הפונקציות שלי - על password_files או על password?

  4. הקוד הנ"ל לא עובד. אפשר הסבר למה?

  1. לכל קובץ במחשב יש כתובת. את הכתובת הזו את צריכה לספק. אם תגשי לקובץ בסייר הקבצים (החלון שמאפשר לך לגשת לקבצים בדרך־כלל) תוכלי להחזיק את הלחצן Shift השמאלי, ללחוץ על הקובץ קליק ימני ואז “העתק ניתוב” או Copy as path. זה הנתיב שאת צריכה לספק.
  2. ה־‘r’ זו הצהרת כוונות: אני פותחת את הקובץ למטרות קריאה. זה לא קורא עדיין את הקובץ.
  3. פעולות של מחרוזות עושים על התוכן שקראת, ולא על האובייקט של הקובץ. דרך קלה לברר את זה היא להדפיס מה הטיפוס של כל אחד מהנתונים.
  4. את אמורה להבין מהתשובות למעלה, ובפרט מסעיף 1 :slight_smile:

בהצלחה

לייק 1

תודה על התשובה!
ניסיתי להריץ שוב עם הנתיב כמו שאמרת אבל עדיין הקוד לא רץ… למה?

@Yam האם יהיה הסבר מהו קידוד ולמה היינו צריכים אותו ב’תקווה’?
תודה רבה!!

יופי! זה טוב.
מכאן זה חלק מהתרגיל

שאלה נוספת:

לא הבנתי מהשאלה איך צריך להיראות הפלט? ומה הכוונה שכל איבר הוא שורה בקובץ? ואיך זה שונה מהפעולה readlines()? הרי זה לא מה שהפונקציה הזאת עושה??

יש לך ב-path תיקייה בעברית, “פייתון”. גם לי זה קרה, וכנראה שפייתון לא ממש אוהבת עברית, כי ברגע ששמתי בתיקייה באנגלית בלבד זה עבד.
שימי לב גם שבשגיאה כתוב שזה בעיה ב-unicode, שזה העברה בין כיתובים שונים. זה מה שרמז לי.
(אני לא סגל, מקווה שיעבוד לך :slight_smile:)

לייק 1

שמתי לב שכשאני מכניסה את הנתיב לפונקציה, אני יכולה לקרוא כמה פעמים לאותו נתיב מבלי לאפס את הסמן בעזרת ה seek(0) למה זה?

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

לייק 1