کپی فایل در پایتون با استفاده از ()shutil.copy و ()shutil.copystat

رتبه: 5 ار 1 رای SSSSS
تغییر نام فایل و دایرکتوری در پایتون
نویسنده: تیم تولید محتوا زمان مطالعه 4 دقیقه
Banner Image

پایتون توابع داخلی برای کپی برداری آسان از فایل ها با استفاده از Shell System Operating فراهم می کند.

دستور زیر برای کپی فایل استفاده می شود.

shutil.copy(src,dst)

دستور زیر برای کپی کردن فایل با اطلاعات MetaData استفاده می شود.

shutil.copystat(src,dst)

در اینجا مراحل کپی کردن فایل در پایتون آورده شده است.

مرحله ۱) قبل از اینکه فایل را کپی کنیم ، باید مسیر مربوط به فایل اصلی را در دایرکتوری اصلی دریافت کنیم. در کد –

۱- تعریف متغیر

۲- اعمال تابع split روی متغیر

 اعمال تابع split روی متغیر

توضیح کد

  • ابتدا می خواهیم بررسی کنیم فایل “guru99.txt” وجود دارد یا خیر. از آنجا که فایل guru99.txt را قبلاً ایجاد کرده ایم ، می دانیم که وجود دارد و با بقیه ی کد ادامه خواهیم داد.
  • در صورت وجود فایل ، مسیر فایل را در متغیر “src” ذخیره می کنیم.
  • پس از دریافت مسیر ، قصد داریم مسیر و نام فایل را از هم جدا کنیم.
  • برای این کار ، از تابع path.split در متغیر منبع استفاده می کنیم.
  • هنگام اجرا ، کد “نام فایل” و “مسیر فایل” را جداگانه چاپ می کند.

مرحله ۲) از ماژول Shutil برای ایجاد یک نسخه از فایل موجود استفاده می کنیم. در اینجا یک نسخه از فایل موجود “guru99.txt” ایجاد کردیم.

استفاده از ماژول Shutil برای ایجاد یک نسخه از فایل موجود

توضیح کد

  • نام فایل اصلی “guru99.txt” را بگیرید و در انتهای آن حروف bak. را اضافه کنید “guru99.txt.bak”. این نام با پسوند bak. کپی ما خواهد بود.
  • سپس از تابع های کپی برای کپی کردن از مبدا به مقصد استفاده می کنیم.
  • هنگامی که کد را اجرا کنید ، یک فایل تکراری با پسوند bak. در سمت راست پنل ایجاد می شود.

مرحله ۳) تابع کپی فقط محتوای فایل را کپی می کند اما هیچ اطلاعات دیگری ندارد. برای کپی کردن meta data مربوط به فایل ، مجوز فایل و سایر اطلاعات باید از تایع “copystat” استفاده کنید. قبل از اجرای کد ، باید فایل کپی “guru99.text.bak” را حذف کنیم.

استفاده از ماژول Shutil برای ایجاد یک نسخه از فایل موجود

پس از حذف فایل و اجرای برنامه ، کپی از فایل txt. ایجاد می شود اما این بار با تمام اطلاعاتی مانند مجوز فایل ، زمان اصلاح و اطلاعات meta data. برای تأیید صحت اطلاعات می توانید به shell O.S خود مراجعه کنید.

استفاده از ماژول Shutil برای ایجاد یک نسخه از فایل موجود

کد در زیر آورده شده است:

import os

import shutil

from os import path

def main():

# make a duplicate of an existing file

if path.exists(“guru99.txt”):

# get the path to the file in the current directory

src = path.realpath(“guru99.txt”);

چرب زبان

پک حرفه ای یادگیری 0 تا 100 پایتون بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، از طراحی اپلیکیشن تا بازی، هک و توسعه وب درامدزایی در حد خدا !!، خرید و دانلود!

#seperate the path from the filter

head, tail = path.split(src)

print(“path:” +head)

print(“file:” +tail)

#let’s make a backup copy by appending “bak” to the name

dst = src+”.bak”

# nowuse the shell to make a copy of the file

shutil.copy(src, dst)

#copy over the permissions,modification

shutil.copystat(src,dst)

if __name__==”__main__”:

main()

مرحله ۴) می توانید اطلاعات مربوط به فایل متنی را که آخرین بار تغییر یافته است دریافت کنید.

استفاده از ماژول Shutil برای ایجاد یک نسخه از فایل موجود

  • کد خط شماره ۱۵- روز هفته، ماه، روز، سال و زمان آخرین تغییرات فایل txt). (guru99 را مشخص می کند. از ماژول path استفاده می کنیم تا جزئیات زمان اصلاح فایل را بدست آوریم و سپس از تابع time کلاس ctime استفاده می کنیم تا آن را به زمان قابل خواندن تبدیل کنیم. بنابراین وقتی کد را اجرا می کنیم ، می بینیم فایل guru99.txt آخرین بار در دوشنبه ، ۸ ژانویه در ساعت ۱۳:۳۵ سال ۲۰۱۸ تغییر یافته است.
  • کد خط شماره ۱۷- همان کار را می کند و اطلاعات مربوط به تغییرات فایل را ارائه می دهد ، اما برای نمایش آن فرمت دیگری دارد. در اینجا از تابع Get Modification Time path.getmtime (“guru99.txt”) استفاده می کنیم. اکنون به جای استفاده از تابع ctime می خواهیم از تابع From Time Stamp استفاده کنیم و قصد داریم یک شی زمان تاریخ را بسازیم. در خروجی ، می توانید جزئیات زمان تغییر فایل را با فرمت های مختلف ۲۰۱۸-۰۱-۰۸, ۱۳:۳۵:۵۱٫۳۳۴۰۷۲ چاپ کنید.

کد کامل:

#

# Example file for working with o.s path module

import os

from os import path

import datetime

from datetime import date, time, timedelta

import time

def main():

# Get the modification time

t = time.ctime(path.getmtime(“guru99.txt.bak”))

print(t)

print(datetime.datetime.fromtimestamp(path.getmtime(“guru99.txt.bak”)))

if __name__ == “__main__”:

main()

خلاصه

  • برای ایجاد یک نسخه کپی از فایل موجود از کد (shutil.copy (src, dst استفاده می شود.
  • برای کپی کردن کلیه اطلاعات فایل اصلی در فایل کپی شده مانند مجوز فایل ، زمان اصلاح یا اطلاعات متا داده ها از کد (shutil.copystat (src ,dst استفاده می شود.
profile name
تیم تولید محتوا

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

1 نظر درباره «کپی فایل در پایتون با استفاده از ()shutil.copy و ()shutil.copystat»

  • saman
    saman آیا این دیدگاه مفید بود ؟

    سلام ایا امکانش هست ک مصلا یک فایل اجرای اجرا بشه و یک کپی از خودش ک درحال اجا هست بگیره و بعد انتقالش بده مثلا به یک پوشه عقب تر؟

    پاسخ
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید