Dosyayı Kopyala Python: Shutil.copy(), Shutil.copystat() yöntemi

⚡ Akıllı Özet

Python `shutil` modülü ile dosyaları kopyalayabilirsiniz. `shutil.copy()` bir dosyanın içeriğini kopyalarken, `shutil.copystat()` ise izinleri, değiştirme zamanını ve meta verilerini de kopyalar. Burada her iki yöntemi de adım adım bir örnekle öğreneceksiniz.

  • ???? shutil.copy(): `shutil.copy(src, dst)` bir dosyanın içeriğini yeni bir hedefe kopyalar.
  • 🗂️ shutil.copystat(): shutil.copystat(src, dst) ayrıca izinleri, zamanı ve meta verileri de kopyalar.
  • 🤖 Yapay zekâ yardımı: Copilot gibi yapay zeka araçları, anlık olarak kod kopyalama işlemi gerçekleştirir.

Dosyayı Kopyala Python

Python Dosya Yöntemlerini Kopyala

Python kullanarak dosyaları kolayca kopyalamak için yerleşik işlevler sağlar. OperaSistem Kabuğu yardımcı programlarını kullanın.

Dosyayı Kopyalamak için aşağıdaki komut kullanılır

shutil.copy(src,dst)

Aşağıdaki komut, MetaData Bilgileri ile Dosyayı Kopyalamak için kullanılır

shutil.copystat(src,dst)

Bir Dosya Nasıl Kopyalanır Python

Dosyayı kopyalama adımları şunlardır Python Shutil copy() yöntemini kullanarak:

) 1 Adım Geçerli dizindeki orijinal yolu yakala
Bir dosyayı kopyalamadan önce, geçerli dizindeki orijinal dosyanın yolunu almamız gerekir. Kodda –

  1. Değişken bildirmek
  2. Değişkene bölme fonksiyonunu uygulama

Bir Dosyayı Kopyala Python

Code açıklama

  • Öncelikle “guru99.txt” dosyamızın var olup olmadığını kontrol edeceğiz. guru99.txt dosyasını daha önce oluşturduğumuz için onun var olduğunu biliyoruz ve kodla devam edeceğiz
  • Dosya yolunu “değişkeninde saklıyoruz”src"dosyanız mevcutsa
  • Yolu bulduktan sonra yolu ve dosya adını ayıracağız
  • Bunun için bölmeyi kullanacağız path.split kaynak değişkenindeki işlev
  • Code Çalıştırıldığında " çıktısını verir.dosya adıve Gülay Pala isedosya yolu" ayrı ayrı

) 2 Adım Shutil modülünü kullanarak mevcut dosyamızın bir kopyasını oluşturun
Mevcut dosyanın bir kopyasını oluşturmak için Shutil Modülünü kullanıyoruz. Burada mevcut “guru99.txt” dosyamızın bir kopyasını oluşturuyorduk.

Bir Dosyayı Kopyala Python

Code açıklama

  • Orijinal dosya adı olan “guru99.txt”yi alın ve “guru99.txt.bak” sonuna .bak harflerini ekleyin. .bak uzantılı bu isim kopya kopyamız olacak
  • Daha sonra kaynaktan hedefe kopyalamak için yardımcı programın kopyalama fonksiyonunu kullanacağız.
  • Kodu çalıştırdığınızda panelin sağ tarafında .bak uzantılı bir kopya dosyanın oluşturulduğunu göreceksiniz.

) 3 Adım Dosya, dosya izni ve diğer bilgilerle ilişkili meta verileri kopyalayın
Kopyalama işlevi yalnızca dosyanın içeriğini kopyalar, başka bilgileri kopyalamaz. Kopyalamak Meta-veri kullanmak zorunda olduğunuz dosya, dosya izni ve diğer bilgilerle ilişkili”kopyalama durumu" işlev. Bu kodu çalıştırmadan önce “guru99.text.bak” kopya dosyamızı silmemiz gerekiyor.

Bir Dosyayı Kopyala Python

Dosyayı silip programı çalıştırdığınızda, .txt dosyanızın bir kopyası oluşturulacaktır ancak bu sefer aşağıdaki gibi tüm bilgilerle birlikte dosya izni, değişiklik zamanı ve meta veri bilgileri. Bilgileri doğrulamak için işletim sistemi kabuğunuza gidebilirsiniz.

Bir Dosyayı Kopyala Python

İşte kod

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 Adım Bilgileri getir
En son değiştirilen metin dosyası hakkındaki bilgileri alabilirsiniz

Bir Dosyayı Kopyala Python

  • Code 15. Satır - Bu satır, .txt dosyasının (guru99) en son ne zaman değiştirildiğini, gününü, ayını, yılını ve saatini gösterir. Dosya değiştirme zamanı ayrıntılarını almak için path modülünü kullanıyoruz ve daha sonra bunu kullanacağız. zaman sınıfları c zaman fonksiyonu bunu okunabilir bir zamana dönüştürmek için. Yani kodu çalıştırdığımızda guru99.txt dosyasının en son değiştirildiği tarihi görebiliriz. 8 Ocak Pztth 13:35 2018'de.
  • Code 17. Satır - Dosya değişikliği hakkında bilgi vererek aynı işlevi görür, ancak bunu farklı bir biçimde sunar. Burada şunu kullanıyoruz: Değişiklik Zamanını Al işlevi (path.getmtime(“guru99.txt”)). Şimdi c zaman fonksiyonunu kullanmak yerine kullanacağız Zaman Damgası işlevinden ve bir tarih saat nesnesi oluşturacağım. Çıktıda, dosya değişiklik zamanı ayrıntılarının farklı formatta yazdırıldığını görebilirsiniz. 2018-01-08, 13:35:51.334072

İşte kod

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

SSS

`shutil` kütüphanesini içe aktarın, ardından dosyanın içeriğini kopyalamak için `shutil.copy(src, dst)` komutunu çağırın. Meta verilerini de kopyalamak için `shutil.copystat()` komutunu kullanın.

`shutil.copystat(src, dst)` komutu, bir dosyanın izinlerini, değiştirme zamanını ve meta verilerini hedef konuma kopyalar, ancak içeriğini kopyalamaz.

`shutil.copy()` içeriği ve izinleri kopyalar, `shutil.copy2()` ise zaman damgaları gibi meta verileri de korur. Değişiklik zamanını korumak için `copy2()` kullanın.

`shutil.copy()` bir dizin hedefi kabul eder ve izinleri kopyalar; `shutil.copyfile()` ise tam dosya yoluna ihtiyaç duyar ve yalnızca içeriğini kopyalar.

Bir dizinin tamamını ve içeriğini özyinelemeli olarak kopyalamak için `shutil.copytree(src, dst)` komutunu kullanın. Hedef klasörün önceden mevcut olmaması gerekir.

GitHub Copilot gibi yapay zeka asistanları, `shutil.copy()` ve `copystat()` çağrılarını otomatik olarak tamamlar ve sizin durumunuz için `copy2()` veya `copytree()` fonksiyonlarını önerir.

Evet. Yapay zeka destekli araçlar yedekleme rutinleri oluşturur, doğru shutil yöntemini seçer ve dosya veya klasörleri kopyalamadan önce varlık kontrolleri ekler.

Zaman damgasını almak için `os.path.getmtime(path)` kullanın, ardından okunabilir bir tarih elde etmek için `time.ctime()` veya `datetime.fromtimestamp()` ile dönüştürün.

Bu yazıyı şu şekilde özetleyin: