מנסה להבין איפה הסדר כאן - תרגיל 142

אני יודע שהתרגיל הזה נועד לבדוק את ההתמודדות שלנו עם חריגות, אבל אני חושב שכאן נתקלתי משהו שלא פתיר עם מה שלמדנו. אני מנסה לעבור על הקבצים במערכת באמצעות לולאה. כשאני מבקש מהתכנית להדפיס לי את רשימת הקבצים, היא עושה את זה בלי בעיה. כשאני מבקש ממנה להדפיס את הקובץ הספציפי בתת-הלולאה, היא עושה גם את זה בלי בעיה. בשורה הבאה אני מבקש ממנה לפתוח את הקובץ ולקרוא אותו, ואז היא מודיעה לי שהקובץ שהיא הרגע הדפיסה את שמו לא קיים. אני משתמש בנתיב אבסולוטי ואפילו מכריח את התכנית להביא את הנתיב האבסולוטי באמצעות מתודה. אני יכול לעקוף את הודעת השגיאה באמצעות except, אבל אז כמובן שלא יפתח הקובץ ולא אוכל לחפש בתוכו את המילה. מה אני מפספס כאן?

השגיאה נכונה. לפי מה שהדפסת באמת אין לך נתיב כזה במחשב.

לייק 1

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

לא, אני מתכוון שהנתיב שמופיע בכחול בשורה 22 הוא לא אותו נתיב שמופיע בשגיאה בסוף התמונה.

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

לייק 1