Dosyayı Kopyala Python: Shutil.copy(), Shutil.copystat() yöntemi
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 –
- Değişken bildirmek
- Değişkene bölme fonksiyonunu uygulama
Kod 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 - Yürütüldüğünde kod yazdırılır "dosya adı"Ve"dosya 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.
Kod 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.
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.
İş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
-
Kod Satırı#15- .txt dosyasının (guru99) en son ne zaman değiştirildiğini gün, tarih, ay, yıl ve saat olarak söyler. Dosyanın değiştirilme zamanı ayrıntılarını almak için path modülünü kullanırız ve sonra 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.
-
Kod Satırı#17- Dosya değişikliği hakkında bilgi vererek aynı şeyi yapar, ancak bunu temsil etmek için farklı bir formata sahiptir. Burada 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()
ÖZET
- Kodu kullanarak mevcut dosyanın bir kopyasını oluşturmak için Shutil.copy (src,dst)
- Orijinal dosyanın tüm bilgilerini aşağıdaki gibi çoğaltılan dosyaya kopyalamak için dosya izni, değişiklik zamanı veya meta veri bilgileri Shutil.copystat(src,dst) kodunu kullanarak