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

⚡ Ringkasan Cerdas

Python Modul shutil menyalin file. shutil.copy() menduplikasi isi file, sedangkan shutil.copystat() juga menyalin izin, waktu modifikasi, dan metadata. Di sini Anda akan mempelajari kedua metode tersebut dengan contoh langkah demi langkah.

  • 📋 shutil.copy(): shutil.copy(src, dst) menyalin isi file ke tujuan baru.
  • ️ shutil.copystat(): shutil.copystat(src, dst) juga menyalin izin, waktu, dan metadata.
  • 🤖 Bantuan AI: Alat AI seperti Copilot menghasilkan kode salinan shutil secara instan.

Salin File ke dalam Python

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

Code Penjelasan

  • 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
  • Code saat dieksekusi akan mencetak “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

Code Penjelasan

  • 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

  • Code Baris #15 - Ini menunjukkan hari, tanggal, bulan, tahun, dan waktu terakhir kali file .txt (guru99) dimodifikasi. Kita menggunakan modul path untuk mendapatkan detail waktu modifikasi file, dan kemudian kita 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.
  • Code Baris #17 - Ini melakukan hal yang sama, yaitu memberikan informasi tentang modifikasi file, tetapi memiliki format yang berbeda untuk menampilkannya. Di sini kita 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()

Pertanyaan Umum Demo Slot

Impor shutil, lalu panggil shutil.copy(src, dst) untuk menyalin isi file. Gunakan shutil.copystat() untuk menyalin metadata-nya juga.

shutil.copystat(src, dst) menyalin izin, waktu modifikasi, dan metadata file ke tujuan, tetapi tidak menyalin isinya.

shutil.copy() menyalin isi dan izin, sedangkan shutil.copy2() juga mempertahankan metadata seperti stempel waktu. Gunakan copy2() untuk mempertahankan waktu modifikasi.

shutil.copy() menerima direktori tujuan dan menyalin izin; shutil.copyfile() membutuhkan jalur file lengkap dan hanya menyalin isinya.

Gunakan shutil.copytree(src, dst) untuk menyalin seluruh direktori beserta isinya secara rekursif. Folder tujuan tidak boleh sudah ada.

Asisten AI seperti GitHub Copilot melengkapi secara otomatis panggilan shutil.copy() dan copystat() serta menyarankan copy2() atau copytree() untuk kasus Anda.

Ya. Alat berbasis AI menghasilkan rutinitas pencadangan, memilih metode transfer yang tepat, dan menambahkan pengecekan keberadaan sebelum menyalin file atau folder.

Gunakan os.path.getmtime(path) untuk mendapatkan stempel waktu, lalu konversikan dengan time.ctime() atau datetime.fromtimestamp() untuk mendapatkan tanggal yang mudah dibaca.

Ringkaslah postingan ini dengan: