در اينجا مراحل كپي كردن فايل در پايتون آورده شده است.
مرحله ۱) قبل از اينكه فايل را كپي كنيم ، بايد مسير مربوط به فايل اصلي را در دايركتوري اصلي دريافت كنيم. در كد –
۱- تعريف متغير
۲- اعمال تابع split روي متغير
توضيح كد
- ابتدا مي خواهيم بررسي كنيم فايل “guru99.txt” وجود دارد يا خير. از آنجا كه فايل guru99.txt را قبلاً ايجاد كرده ايم ، مي دانيم كه وجود دارد و با بقيه ي كد ادامه خواهيم داد.
- در صورت وجود فايل ، مسير فايل را در متغير “src” ذخيره مي كنيم.
- پس از دريافت مسير ، قصد داريم مسير و نام فايل را از هم جدا كنيم.
- براي اين كار ، از تابع path.split در متغير منبع استفاده مي كنيم.
- هنگام اجرا ، كد “نام فايل” و “مسير فايل” را جداگانه چاپ مي كند.
مرحله ۲) از ماژول Shutil براي ايجاد يك نسخه از فايل موجود استفاده مي كنيم. در اينجا يك نسخه از فايل موجود “guru99.txt” ايجاد كرديم.
توضيح كد
- نام فايل اصلي “guru99.txt” را بگيريد و در انتهاي آن حروف bak. را اضافه كنيد “guru99.txt.bak”. اين نام با پسوند bak. كپي ما خواهد بود.
- سپس از تابع هاي كپي براي كپي كردن از مبدا به مقصد استفاده مي كنيم.
- هنگامي كه كد را اجرا كنيد ، يك فايل تكراري با پسوند bak. در سمت راست پنل ايجاد مي شود.
مرحله ۳) تابع كپي فقط محتواي فايل را كپي مي كند اما هيچ اطلاعات ديگري ندارد. براي كپي كردن meta data مربوط به فايل ، مجوز فايل و ساير اطلاعات بايد از تايع “copystat” استفاده كنيد. قبل از اجراي كد ، بايد فايل كپي “guru99.text.bak” را حذف كنيم.
پس از حذف فايل و اجراي برنامه ، كپي از فايل txt. ايجاد مي شود اما اين بار با تمام اطلاعاتي مانند مجوز فايل ، زمان اصلاح و اطلاعات meta data. براي تأييد صحت اطلاعات مي توانيد به shell O.S خود مراجعه كنيد.
كد در زير آورده شده است:
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()
مرحله ۴) مي توانيد اطلاعات مربوط به فايل متني را كه آخرين بار تغيير يافته است دريافت كنيد.
- كد خط شماره ۱۵- روز هفته، ماه، روز، سال و زمان آخرين تغييرات فايل txt). (guru99 را مشخص مي كند. از ماژول path استفاده مي كنيم تا جزئيات زمان اصلاح فايل را بدست آوريم و سپس از تابع time كلاس ctime استفاده مي كنيم تا آن را به زمان قابل خواندن تبديل كنيم. بنابراين وقتي كد را اجرا مي كنيم ، مي بينيم فايل guru99.txt آخرين بار در دوشنبه ، ۸ ژانويه در ساعت ۱۳:۳۵ سال ۲۰۱۸ تغيير يافته است.