Shutil.copy (), shutil.copystat () kullanarak Python KOPYALAMA Dosyası

İçindekiler:

Anonim

Python Kopyalama Dosya Yöntemleri

Python, İşletim Sistemi Kabuğu yardımcı programlarını kullanarak dosyaları kolayca kopyalamak için yerleşik işlevler sağlar.

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

shutil.copy(src,dst)

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

shutil.copystat(src,dst)

İşte Python'da dosya kopyalamak için adımlar

Adım 1) Bir dosyayı kopyalamadan önce, mevcut dizindeki orijinal dosyanın yolunu almamız gerekiyor. Kodda -

  1. Değişken bildiriliyor
  2. Değişkene bölünmüş fonksiyon uygulama

Kod Açıklama

  • Önce "guru99.txt" dosyamızın var olup olmadığını kontrol edeceğiz. Daha önce guru99.txt dosyasını oluşturduğumuz için, var olduğunu biliyoruz ve kodla daha da ileriye gideceğiz
  • Dosyanız mevcutsa , dosya yolunu " src " değişkeninde saklarız
  • Yolu aldığımızda, yolu ve dosya adını ayıracağız.
  • Bunun için path.splitkaynak değişkeni üzerinde split fonksiyonunu kullanacağız.
  • Çalıştırıldığında kod, " dosya adı " ve " dosya yolu " nu ayrı ayrı yazdırır

Adım 2) 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.

Kod Açıklama

  • Orijinal dosya adını "guru99.txt" alın ve "guru99.txt.bak" sonuna .bak harflerini ekleyin. .Bak uzantılı bu isim bizim kopya nüshamız olacak
  • Ve sonra kaynaktan hedefe kopyalamak için yardımcı programın kopyalama işlevini kullanacağız.
  • Kodu çalıştırdığınızda, panelin sağ tarafında .bak uzantılı bir yinelenen dosyanın oluşturulduğunu göreceksiniz.

Adım 3) Kopyalama işlevi yalnızca dosyanın içeriğini kopyalar, diğer bilgileri kopyalamaz. Dosya, dosya izni ve diğer bilgilerle ilişkili meta verileri kopyalamak için " copystat " işlevini kullanmanız gerekir . Bu kodu çalıştırmadan önce kopya dosyamız olan "guru99.text.bak" silmemiz gerekiyor.

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

İşte kod

import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()

Adım 4) Son değiştirilen metin dosyası hakkındaki bilgileri alabilirsiniz.

  • Kod Satırı # 15- .txt dosyasının (guru99) en son değiştirildiği günü, tarihi, ayı, yılı ve saati söyler. Dosya değiştirme zamanı ayrıntılarını almak için yol modülünü kullanıyoruz ve sonra bunu okunabilir bir zamana dönüştürmek için zaman sınıfları c zaman işlevini kullanacağız. Biz kod çalıştırmasına zaman, biz de dosya guru99.txt son değiştirilme tarihi görebilirsiniz Mon, Jan 8 inci 13:35 2018 at.
  • Kod Satırı # 17- Dosya modifikasyonu hakkında bilgi veren aynı şeyi yapar, ancak onu temsil etmek için farklı bir formatı vardır. Burada Get Modification Time işlevini (path.getmtime ("guru99.txt")) kullanıyoruz. Şimdi c zaman işlevini kullanmak yerine, Zaman Damgası işlevini kullanacağız ve bir tarih zaman nesnesi oluşturacağız. Çıktıda, dosya değişiklik zamanı ayrıntısının farklı bir formatta yazdırıldığını görebilirsiniz 2018-01-08, 13: 35: 51.334072

İşte kod

## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()

Özet

  • Shutil.copy (src, dst) kodunu kullanarak mevcut dosyanın bir kopyasını oluşturmak için
  • Orijinal dosyanın tüm bilgilerini dosya izni, değişiklik zamanı veya meta veri bilgileri gibi yinelenen dosyaya , shutil.copystat (src, dst) kodunu kullanarak kopyalamak için