Salin File ke dalam Python: metode shutil.copy(), shutil.copystat()

Python Salin Metode File

Python menyediakan fungsi bawaan untuk menyalin file dengan mudah menggunakan Operating utilitas System Shell.

Perintah berikut digunakan untuk Menyalin File

shutil.copy(src,dst)

Perintah berikut digunakan untuk Menyalin File dengan Informasi MetaData

shutil.copystat(src,dst)

Cara Menyalin File di Python

Berikut langkah-langkah untuk menyalin file Python menggunakan metode shutil copy():

Langkah 1) Tangkap jalur asli di direktori saat ini
Sebelum kita menyalin file, kita perlu mendapatkan jalur ke file asli di direktori saat ini. Dalam kode –

  1. Mendeklarasikan variabel
  2. Menerapkan fungsi split pada variabel

Salin File ke dalam Python

Penjelasan Kode

  • Pertama kita akan memeriksa apakah file “guru99.txt” kita ada atau tidak. Karena kita telah membuat file guru99.txt sebelumnya, kita tahu file itu ada, dan kita akan melanjutkan lebih jauh dengan kodenya
  • Kami menyimpan jalur file dalam variabel “src” jika file Anda ada
  • Setelah kami mendapatkan jalurnya, kami akan memisahkan jalur dan nama file
  • Untuk itu, kita akan menggunakan split path.split fungsi pada variabel sumber
  • Kode saat dieksekusi tercetak “nama file"Dan"jalur file" terpisah

Langkah 2) Buat salinan file kami yang ada menggunakan modul shutil
Kami menggunakan Modul Shutil untuk membuat salinan file yang ada. Di sini kami biasa membuat salinan file yang ada “guru99.txt.”

Salin File ke dalam Python

Penjelasan Kode

  • Ambil nama file asli “guru99.txt” dan tambahkan huruf .bak di akhir “guru99.txt.bak”. Nama dengan ekstensi .bak ini akan menjadi salinan duplikat kami
  • Dan kemudian kita akan menggunakan fungsi salin utilitas untuk menyalin dari sumber ke tujuan
  • Saat Anda menjalankan kode, Anda akan melihat file duplikat dengan ekstensi .bak dibuat di sisi kanan panel

Langkah 3) Salin metadata yang terkait dengan file, izin file, dan informasi lainnya
Fungsi salin hanya menyalin isi file tetapi tidak ada informasi lainnya. Untuk menyalin data meta terkait dengan file, izin file, dan informasi lain yang harus Anda gunakan “copystat" fungsi. Sebelum kita menjalankan kode ini, kita harus menghapus file salinan “guru99.text.bak”.

Salin File ke dalam Python

Setelah Anda menghapus file dan menjalankan program, itu akan membuat salinan file .txt Anda tetapi kali ini dengan semua informasi seperti izin file, waktu modifikasi dan informasi metadata. Anda dapat membuka shell OS Anda untuk memverifikasi informasi.

Salin File ke dalam Python

Ini kodenya

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

Langkah 4) Ambil informasinya
Anda dapat mengambil informasi tentang file teks yang terakhir diubah

Salin File ke dalam Python

  • Baris Kode #15- Ini memberitahu hari, tanggal, bulan, tahun dan waktu ketika file .txt (guru99) terakhir dimodifikasi. Kami menggunakan modul path untuk mendapatkan rincian waktu modifikasi file, dan kemudian kami akan menggunakan kelas waktu c fungsi waktu untuk mengubahnya menjadi waktu yang dapat dibaca. Jadi ketika kita menjalankan kodenya, kita dapat melihat file guru99.txt terakhir diubah Senin, 8 Januarith pada 13:35 2018.
  • Baris Kode#17- Ia melakukan hal yang sama memberikan informasi tentang modifikasi file, tetapi memiliki format berbeda untuk mewakilinya. Di sini kami menggunakan Dapatkan fungsi Waktu Modifikasi (jalur.getmtime(“guru99.txt”)). Sekarang, alih-alih menggunakan fungsi waktu c, kita akan menggunakan Dari fungsi Stempel Waktu dan akan membuat objek tanggal waktu. Pada output, Anda dapat melihat detail waktu modifikasi file dicetak dalam format berbeda 2018-01-08, 13:35:51.334072

Ini kodenya

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

Ringkasan

  • Untuk membuat salinan file yang ada dengan menggunakan kode shutil.copy (src,dst)
  • Untuk menyalin semua informasi dari file asli ke file duplikat seperti izin file, waktu modifikasi atau informasi metadata dengan menggunakan kode shutil.copystat(src,dst)