האם אתה רוצה לשפר את מיומנות הפייתון שלך? אז אתה יכול לנסות לבצע כמה משימות במחשב שלך עם Python. העתקה והדבקה של קבצים מספריה אחת לאחרת באמצעות Python היא דרך מהנה לעשות זאת.

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

דרישות להעתקת קבצים עם פייתון

ישנן דרכים רבות להעתיק ולהדביק קבצים באמצעות Python. לכן, הדרישה לעשות זאת משתנה ותלויה בשיטה בה אתה מחליט להשתמש.

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

לדוגמה, אם אתה רוצה להשתמש ב- os שיטה, עליך לייבא אותו לקוד שלך. עם זאת, אחת הדרכים הפופולריות להעתקת קבצים עם Python היא באמצעות סגר סִפְרִיָה.

בואו נראה כיצד נוכל להשתמש בשיטות שונות אלה להעתקת קבצים עם Python.

כיצד להעתיק קבצים באמצעות ספריית Shutil המובנית של Python

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

instagram viewer

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

בעצם, סגר לובש פורמט זה:

shutil.copy ([נתיב ספריית המקור], [נתיב ספריית היעד], follow_symlinks = נכון)

לדוגמא, הקוד שלמטה משתמש shutil.copy () להעתקת קובץ בשם copy.txt מתיקיה שנקראת התיקייה שלי לתוך עוד אחד בשם יַעַד. לאחר מכן הוא משנה את שם קובץ היעד ל newFile.txt:

יבוא שקע
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)

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

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

קָשׁוּר: פקודות שורת פקודה (CMD) שעליך לדעת

ה shutil.copy השיטה אינה מעתיקה את המטא-נתונים של קובץ המקור. למעשה, המכונה שלך רואה את קובץ היעד כקובץ חדש לחלוטין ונותנת לו מטא נתונים חדשים.

עם זאת, כדי להעתיק את המטא-נתונים יחד עם הקובץ המקורי, השתמש ב- shutil.copy2 שיטה:

יבוא שקע
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)

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

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

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

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

יבוא שקע
shutil.copy2 (sourceFile, destinationFile)

בנוסף לשימוש בשיטות shutil לעיל, אתה יכול גם להשתמש shutil.copyfile אוֹ shutil.copyfileobj.

באמצעות shutil.copyfileobj הוא קצת שונה מכיוון שהוא דורש את המובנה לִפְתוֹחַ פוּנקצִיָה. לאחר מכן, עליך לקרוא ולכתוב בינארי על ידי הכללת ה- "rb" ו "wb" טיעונים.

בוא נראה איך shutil.copyfileobj השיטה עובדת באמצעות אותן ספריות בהן השתמשנו בעבר:

יבוא שקע
sourceFilePath = פתוח ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = פתוח ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)

שים לב ש shutil.copyfileobj () אינו דורש את עקוב אחר קישורים טַעֲנָה.

למרות זאת, shutil.copyfile () עובד בערך באותה צורה .עותק ו .copy2 עושה. הם נבדלים רק בצורה לא משמעותית בתפקודים הפנימיים שלהם.

כדי להשתמש ב- shutil.copyfile () שיטה:

יבוא שקע
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)

כיצד להעתיק קבצים באמצעות מודול מערכת ההפעלה

ה os המודול משתמש בשתי שיטות מובנות להעתקת קבצים; os.system () ו os.popen () שיטות.

ה os.system () השיטה מאפשרת לך לחקות את סביבת שורת הפקודה.

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

כדי להשתמש ב- os.system () שיטה ב- Windows:

יבוא מערכת הפעלה
os.system ('העתק את המקור.טקסט יעד.טקסט)

אתה יכול גם להשתמש במובנה צילום פקודת מסוף Windows:

יבוא מערכת הפעלה
os.system ('xcopy source.txt destination.txt)

כדי להשתמש ב- מערכת os. שיטה בלינוקס, החלף עותק עם עותק:

יבוא מערכת הפעלה
os.system ('cp source.txt destination.txt)

כיצד להעתיק קבצים בשיטת os.popen

כדי להשתמש בשיטה זו, החלף os.system () עם os.popen ().

ב- Windows השתמש ב:

יבוא מערכת הפעלה
os.popen ('העתק את המקור.טקסט יעד.טקסט)

כמו שעשינו עם os.system (), החלף עותק עם עותק להשתמש בשיטה זו בלינוקס:

יבוא מערכת הפעלה
os.popen ('cp source.txt destination.txt)

כיצד להעתיק קבצים עם מודול תת התהליך של פייתון

בנוסף לשיטות לעיל, אתה יכול גם להשתמש ב- תת-תהליך () ספרייה להעתקת קבצים בפייתון:

ייבוא ​​תת-תהליך כ- sp
sp.call ("copy sourceFile destinationFile", shell = True)

עם זאת, ב- Linux, השתמש ב:

ייבוא ​​תת-תהליך כ- sp
sp.call ("cp sourceFile destinationFile", shell = True)

ה תת-תהליך הספרייה גם משתמשת subprocess.check_out () שיטה. זה עובד באותה צורה subprocess.call () עושה:

ייבוא ​​תת-תהליך כ- sp
sp.check_out ("copy sourceFile destinationFile", shell = True)

ב- Linux, החלף עותק עם עותק:

ייבוא ​​תת-תהליך כ- sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

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

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

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

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

כך תוכל להשיג זאת:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
עם פתוח (sourcePath, "rb") כפי שנקרא:
עם פתוח (destinationPath, "wb") כקובץ שלי:
myfile.write (read.read ())

ל להפוך את הקוד לשימוש חוזר, אתה יכול לשנות את זה לפונקציה:

def copyFile (מקור = ללא, יעד = ללא):
אם לא (מקור ויעד) == אין:
עם פתוח (מקור, "rb") כפי שנקרא:
עם פתוח (יעד, "wb") כקובץ שלי:
myfile.write (read.read ())
אַחֵר:
הדפס ("אנא הכנס את נתיב המקור והיעד")
copyFile (sourcePath, destinationPath)

זהו זה. אתה פשוט עשית מכונת צילום קבצים לשימוש חוזר עם Python מבלי להשתמש בספרייה כלשהי.

המשך לבצע משימות אוטומטיות עם פייתון

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

לדוגמה, באפשרותך לשנות את התאריך והשעה במחשב באמצעות מודול ה- os. אתה יכול אפילו לכתוב פקודות bash מותאמות אישית עם Python אם אתה רוצה.

אימייל
כיצד ליצור תוכניות שורת פקודה משלך בפייתון בלחיצה

רוצה להכין תוכניות שורת פקודה משלך לפייתון אבל למצוא את זה קשה מדי? השתמש ב- Click, כלי פיתון שימושי לייעול הקוד שלך.

נושאים קשורים
  • תִכנוּת
  • פִּיתוֹן
על הסופר
אידובו אומיסולה (56 מאמרים פורסמו)

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

עוד מאידובו אומיסולה

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

צעד אחד נוסף !!!

אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.

.