คัดลอกไฟล์เข้า Python: Shutil.copy(), Shutil.copystat() วิธีการ
Python วิธีการคัดลอกไฟล์
Python มีฟังก์ชันในตัวเพื่อการคัดลอกไฟล์ได้อย่างง่ายดายโดยใช้ Operaการใช้ยูทิลิตี้ System Shell
คำสั่งต่อไปนี้ใช้ในการคัดลอกไฟล์
shutil.copy(src,dst)
คำสั่งต่อไปนี้ใช้ในการคัดลอกไฟล์ที่มีข้อมูลเมตาดาต้า
shutil.copystat(src,dst)
วิธีคัดลอกไฟล์ใน Python
ต่อไปนี้เป็นขั้นตอนการคัดลอกไฟล์ Python โดยใช้เมธอด Shutil Copy():
ขั้นตอน 1) บันทึกเส้นทางดั้งเดิมในไดเร็กทอรีปัจจุบัน
ก่อนที่เราจะคัดลอกไฟล์ เราจำเป็นต้องได้รับเส้นทางไปยังไฟล์ต้นฉบับในไดเร็กทอรีปัจจุบัน ในรหัส -
- การประกาศตัวแปร
- การใช้ฟังก์ชันแยกกับตัวแปร
คำอธิบายรหัส
- ก่อนอื่นเราจะตรวจสอบว่ามีไฟล์ “guru99.txt” ของเราอยู่หรือไม่ เนื่องจากเราได้สร้างไฟล์ guru99.txt ไว้ก่อนหน้านี้ เราจึงรู้ว่ามีอยู่จริง และเราจะดำเนินการโค้ดต่อไป
- เราเก็บเส้นทางของไฟล์ไว้ในตัวแปร “สิ่งอำนวยความสะดวก” หากไฟล์ของคุณมีอยู่
- เมื่อเราได้เส้นทางแล้ว เราจะแยกเส้นทางและชื่อไฟล์
- เพื่อสิ่งนั้น เราจะใช้การแยก
path.split
ฟังก์ชั่นกับตัวแปรต้นทาง - รหัสเมื่อดำเนินการพิมพ์ออกมา “ชื่อไฟล์"และ"พา ธ ไฟล์” แยกกัน
ขั้นตอน 2) สร้างสำเนาของไฟล์ที่มีอยู่ของเราโดยใช้โมดูล shutil
เราใช้ Shutil Module เพื่อสร้างสำเนาของไฟล์ที่มีอยู่ ที่นี่เราใช้ในการสร้างสำเนาของไฟล์ที่มีอยู่ของเรา “guru99.txt”
คำอธิบายรหัส
- ใช้ชื่อไฟล์ต้นฉบับ “guru99.txt” และเพิ่มตัวอักษร .bak ต่อท้าย “guru99.txt.bak” ชื่อที่มีนามสกุล .bak นี้จะเป็นสำเนาของเรา
- จากนั้นเราจะใช้ฟังก์ชันคัดลอกของยูทิลิตี้เพื่อคัดลอกจากต้นทางไปยังปลายทาง
- เมื่อคุณเรียกใช้โค้ด คุณจะเห็นไฟล์ที่ซ้ำกันซึ่งมีนามสกุล .bak ถูกสร้างขึ้นทางด้านขวามือของแผง
ขั้นตอน 3) คัดลอกข้อมูลเมตาที่เกี่ยวข้องกับไฟล์ การอนุญาตไฟล์ และข้อมูลอื่นๆ
ฟังก์ชั่นคัดลอกคัดลอกเฉพาะเนื้อหาของไฟล์ แต่ไม่มีข้อมูลอื่น ๆ เพื่อคัดลอก ข้อมูลเมตา ที่เกี่ยวข้องกับไฟล์ การอนุญาตไฟล์ และข้อมูลอื่น ๆ ที่คุณต้องใช้”คัดลอก" การทำงาน. ก่อนที่เราจะรันโค้ดนี้ เราต้องลบไฟล์คัดลอกของเรา “guru99.text.bak” ก่อน
เมื่อคุณลบไฟล์และรันโปรแกรม มันจะสร้างสำเนาของไฟล์ .txt ของคุณ แต่คราวนี้มีข้อมูลทั้งหมดเช่น การอนุญาตไฟล์ เวลาในการแก้ไข และข้อมูลเมตาดาต้า- คุณสามารถไปที่เชลล์ OS ของคุณเพื่อตรวจสอบข้อมูลได้
นี่คือรหัส
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) ดึงข้อมูล
คุณสามารถดึงข้อมูลเกี่ยวกับไฟล์ข้อความที่แก้ไขล่าสุดได้
-
รหัสบรรทัดที่ 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)