יום 1 ADD: העתקת תקיות וקבצים

תגיות:

אני נתקל ב2 בעיות שאני לא מוצא להם פתרון בפורום או באינטרנט (אם נשאל, כוונו אותי בבקשה לפוסט).

אני משתמש בshutil.copytree כדי להעתיק את התקיות והקבצים. התקיות מועתקות בהצלחה אבל הקבצים לא ולא נזרקת שגיאה. לפי הדוקומנטציה זה כן אמור להעתיק גם קבצים אז אני לא מבין מה אני עושה לא נכון.

כשאני משתמש בshutil.rmtree כדי למחוק קבצים ישנים, זה מוחק לי גם את ה staging_area. אני לא מצליח למצוא איך אני גורם לו למחוק רק תתי-תקייה.

הפונקציה הזו לא עובדת בגדול לפי ההגיון שלנו של “תעתיק לי את X ל Y”
בהנחה ש X ו Y קיימים.

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

לא כל כך ברור לי.
אם אני מעתיק את תקייה /logs ל staging_area/logs זה עובד (זה x ל y אם אני מבין אותך),
אבל אם אני מנסה להעתיק logs/log.txt ל staging_area/logs/log.txt זה לא עובד (אבל גם זה x ל y, לא?)

לגבי “כאשר Y לא קיים” ממליץ לקרוא בדוקומנטציה המקורית, יש פיתרון מובנה:
https://docs.python.org/3/library/shutil.html

לשאלה המקורית - גם כאן התשובה בלינק, copytree נועדה להעתיק תיקיות ולא קובץ, להעתק קובץ יש דרכים אחרות.

לייק 1

מעדכן שהטעות שלי הייתה שטותית והייתה קשורה בסדר הפרמטרים. אבל לגבי מה שאמרת, אתה טועה. copytree נועד לשניהם, וזה עובד.

הוא נועד לשניהם פשוט לא בדיפולט שלו :slight_smile:
העיקר הסתדר זה הכי חשוב.

אחרי שחרשתי את הדוקומנטציה של copytree ואת האינטרנט עדיין לא מצאתי איך אפשר להשתמש בפונקציה לצורך העתקת קובץ ולא תיקיה, אפשר איזשהי הכוונה?

לנסות פונקציות אחרות שהן לא בהכרח copytree :smiley:

צודק :roll_eyes:
פשוט התאמצתי כל כך בשביל שהפונקציה תעבוד לי בcmd חחחחחח

לייק 1