Python’da dosya kopyalama nasıl yapılır?

Python’da dosya kopyalamak için birden fazla yöntem kullanabiliriz.

İlişkili olduğu konular : python-io

Python’da dosya kopyalamak için birden fazla yöntem kullanabiliriz. Örneğin istediğimiz şey bir dosyanın içeriğini başka bir dosyaya kopyalamak ise with ile dosyayı açabiliriz ve bir for döngüsü ile yeni dosyaya yazabiliriz. Diğer bir yöntem ise dosyaları direkt kopyalamak olurdu. Peki bu durumda ne yapabiliriz? shutil modülü kullanabileceğiniz birçok metot sunar. Bunlardan biri:

from shutil import copyfile
copyfile(src, dst)
  • src adlı dosyanın içeriğini dst isimli dosyaya kopylalar. Her iki dosya için de yol bilgisi dahil olmak üzere dosyanın tam adı verilmelidir.
  • Hedef konum yazılabilir olmalıdır; aksi takdirde bir IOError özel durumu gündeme gelecektir.
  • dst zaten varsa, değiştirilir.
  • Karakter veya blok aygıtları ve kanallar gibi özel dosyalar bu işlevle kopyalanamaz.
  • src ve dst string olarak verilir.

Python’da shutil.copy() ile dosya kopyalama

Bakılacak başka bir yöntem shutil.copy().

copy() metodunun copyfile()‘a göre avantajı hedef dosya yerine hedef klasor de belirtebilmemiz.

copy(src, dst)  # dst bir klasor olabilir;

shutil.copy2()

Benzer bir metot olan copy2(), copy()‘ye göre daha fazla meta veriyi korur (örneğin zaman damgaları).

Bunun yanında rastgele 100 bin dosya kopyalamaya çalışıyorsanız copyfile‘ın copy2'den önemli ölçüde daha hızlı olduğunu unutmayın.

copyfile ve dosya/klasör isimleri?

copyfile boşluk içeren dosya ve klasör isimlerinde sorun yaşamaz. Ancak dosya isimlerinde özel karakterlerden kaçınmak gerekir. Örneğin \ işareti. Bu durumda doğru kullanım aşağıdaki gibi olmalı (\\):

import shutils

source = 'C:\\Documents and Settings\\Some directory\\My file.txt'
destination = 'C:\\Documents and Settings\\Some other directory\\Copy.txt'

shutil.copyfile(source, destination)

Yani:

Yanlış: C:\Test\Derp.txt'
Doğru: C:\\Test\\Derp.txt'

ya da daha iyisi r önekini kullanın:

source = r'C:\Documents and Settings\Some directory\My file.txt'

Yanlış kullanımınızda Errno 22 ile karşılaşabilirsiniz. Ancak unutmayın Errno 22 başka bir soruna da işaret edebilir. Bu hatayı aşağıdaki senaryolarda alabilirsiniz:

  • Kaynak dosya veya hedef dosya başka bir işlem tarafından kullanılıyor.
  • Dosya yolu Unicode karakterler içeriyor.
  • Diğer erişim sorunları.

Alternatif olarak dosyaları taşımayı deneyebilirsiniz.

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python101 – Kitaplıklar ve Diğer Fonksiyonlar

Bu bölümde, python hakkında yaygın olarak sorulan veya kullanılan çeşitli içe aktarılan kitaplıkları ve bazı işlevleri ele alacağız.

Python’da bir klasörün var olup olmadığı nasıl bulunur?

Dosya veya dizin olup olmadığını umursamıyorsanız, os.

Python101 – 10’a kadar say

Döngüler İlk kontrol yapımıza geçiyoruz.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.