คัดลอกไฟล์เข้า Python: Shutil.copy(), Shutil.copystat() วิธีการ

Python วิธีการคัดลอกไฟล์

Python มีฟังก์ชันในตัวเพื่อการคัดลอกไฟล์ได้อย่างง่ายดายโดยใช้ Operaการใช้ยูทิลิตี้ System Shell

คำสั่งต่อไปนี้ใช้ในการคัดลอกไฟล์

shutil.copy(src,dst)

คำสั่งต่อไปนี้ใช้ในการคัดลอกไฟล์ที่มีข้อมูลเมตาดาต้า

shutil.copystat(src,dst)

วิธีคัดลอกไฟล์ใน Python

ต่อไปนี้เป็นขั้นตอนการคัดลอกไฟล์ Python โดยใช้เมธอด Shutil Copy():

ขั้นตอน 1) บันทึกเส้นทางดั้งเดิมในไดเร็กทอรีปัจจุบัน
ก่อนที่เราจะคัดลอกไฟล์ เราจำเป็นต้องได้รับเส้นทางไปยังไฟล์ต้นฉบับในไดเร็กทอรีปัจจุบัน ในรหัส -

  1. การประกาศตัวแปร
  2. การใช้ฟังก์ชันแยกกับตัวแปร

คัดลอกไฟล์ใน Python

คำอธิบายรหัส

  • ก่อนอื่นเราจะตรวจสอบว่ามีไฟล์ “guru99.txt” ของเราอยู่หรือไม่ เนื่องจากเราได้สร้างไฟล์ guru99.txt ไว้ก่อนหน้านี้ เราจึงรู้ว่ามีอยู่จริง และเราจะดำเนินการโค้ดต่อไป
  • เราเก็บเส้นทางของไฟล์ไว้ในตัวแปร “สิ่งอำนวยความสะดวก” หากไฟล์ของคุณมีอยู่
  • เมื่อเราได้เส้นทางแล้ว เราจะแยกเส้นทางและชื่อไฟล์
  • เพื่อสิ่งนั้น เราจะใช้การแยก path.split ฟังก์ชั่นกับตัวแปรต้นทาง
  • รหัสเมื่อดำเนินการพิมพ์ออกมา “ชื่อไฟล์"และ"พา ธ ไฟล์” แยกกัน

ขั้นตอน 2) สร้างสำเนาของไฟล์ที่มีอยู่ของเราโดยใช้โมดูล shutil
เราใช้ Shutil Module เพื่อสร้างสำเนาของไฟล์ที่มีอยู่ ที่นี่เราใช้ในการสร้างสำเนาของไฟล์ที่มีอยู่ของเรา “guru99.txt”

คัดลอกไฟล์ใน Python

คำอธิบายรหัส

  • ใช้ชื่อไฟล์ต้นฉบับ “guru99.txt” และเพิ่มตัวอักษร .bak ต่อท้าย “guru99.txt.bak” ชื่อที่มีนามสกุล .bak นี้จะเป็นสำเนาของเรา
  • จากนั้นเราจะใช้ฟังก์ชันคัดลอกของยูทิลิตี้เพื่อคัดลอกจากต้นทางไปยังปลายทาง
  • เมื่อคุณเรียกใช้โค้ด คุณจะเห็นไฟล์ที่ซ้ำกันซึ่งมีนามสกุล .bak ถูกสร้างขึ้นทางด้านขวามือของแผง

ขั้นตอน 3) คัดลอกข้อมูลเมตาที่เกี่ยวข้องกับไฟล์ การอนุญาตไฟล์ และข้อมูลอื่นๆ
ฟังก์ชั่นคัดลอกคัดลอกเฉพาะเนื้อหาของไฟล์ แต่ไม่มีข้อมูลอื่น ๆ เพื่อคัดลอก ข้อมูลเมตา ที่เกี่ยวข้องกับไฟล์ การอนุญาตไฟล์ และข้อมูลอื่น ๆ ที่คุณต้องใช้”คัดลอก" การทำงาน. ก่อนที่เราจะรันโค้ดนี้ เราต้องลบไฟล์คัดลอกของเรา “guru99.text.bak” ก่อน

คัดลอกไฟล์ใน Python

เมื่อคุณลบไฟล์และรันโปรแกรม มันจะสร้างสำเนาของไฟล์ .txt ของคุณ แต่คราวนี้มีข้อมูลทั้งหมดเช่น การอนุญาตไฟล์ เวลาในการแก้ไข และข้อมูลเมตาดาต้า- คุณสามารถไปที่เชลล์ OS ของคุณเพื่อตรวจสอบข้อมูลได้

คัดลอกไฟล์ใน Python

นี่คือรหัส

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

ขั้นตอน 4) ดึงข้อมูล
คุณสามารถดึงข้อมูลเกี่ยวกับไฟล์ข้อความที่แก้ไขล่าสุดได้

คัดลอกไฟล์ใน Python

  • รหัสบรรทัดที่ 15 - ระบุวันที่ เดือน ปี และเวลาที่ไฟล์ .txt (guru99) ถูกแก้ไขครั้งล่าสุด เราใช้โมดูลเส้นทางเพื่อดูรายละเอียดเวลาแก้ไขไฟล์ จากนั้นเราจะใช้ คลาสเวลา c ฟังก์ชันเวลา เพื่อแปลงข้อมูลนั้นให้เป็นเวลาที่สามารถอ่านได้ ดังนั้นเมื่อเรารันโค้ด เราจะเห็นว่าไฟล์ guru99.txt ถูกแก้ไขล่าสุดเมื่อ จันทร์ที่ 8 มกราคมth เวลา 13:35 น. 2018.
  • Code Line#17- ทำหน้าที่เหมือนกับการให้ข้อมูลเกี่ยวกับการแก้ไขไฟล์ แต่มีรูปแบบที่แตกต่างกันในการนำเสนอ ที่นี่เราใช้ รับฟังก์ชันเวลาปรับเปลี่ยน (path.getmtime(“guru99.txt”)) ตอนนี้แทนที่จะใช้ฟังก์ชัน c time เราจะใช้ จากฟังก์ชันประทับเวลา และจะสร้างวัตถุวันที่และเวลา ในเอาต์พุต คุณสามารถดูรายละเอียดเวลาในการแก้ไขไฟล์ที่พิมพ์ออกมาในรูปแบบต่างๆ ได้ 2018-01-08, 13:35:51.334072

นี่คือรหัส

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

สรุป

  • เพื่อสร้างสำเนาของไฟล์ที่มีอยู่โดยใช้รหัส ปิดเครื่อง.copy (src,dst)
  • เพื่อคัดลอกข้อมูลทั้งหมดของไฟล์ต้นฉบับไปทำซ้ำไฟล์เช่น การอนุญาตไฟล์ เวลาในการแก้ไข หรือข้อมูลเมตาดาต้า โดยใช้โค้ด shutil.copystat(src,dst)