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

۶ بازديد

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

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

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

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

C:UsersMrDesktopPython18.5.png

توضيح كد

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

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

C:UsersMrDesktopPython18.6.png

توضيح كد

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

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

C:UsersMrDesktopPython18.7.png

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

C:UsersMrDesktopPython18.8.png

كد در زير آورده شده است:

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”);

#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()

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

C:UsersMrDesktopPython18.4_New.png

  • كد خط شماره ۱۵- روز هفته، ماه، روز، سال و زمان آخرين تغييرات فايل txt). (guru99 را مشخص مي كند. از ماژول path استفاده مي كنيم تا جزئيات زمان اصلاح فايل را بدست آوريم و سپس از تابع time كلاس ctime استفاده مي كنيم تا آن را به زمان قابل خواندن تبديل كنيم. بنابراين وقتي كد را اجرا مي كنيم ، مي بينيم فايل guru99.txt آخرين بار در دوشنبه ، ۸ ژانويه در ساعت ۱۳:۳۵ سال ۲۰۱۸ تغيير يافته است.
تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.