Python’da dosya taşıma nasıl yapılır?

Dosya taşımak için Python’da birden fazla seçeneğimiz var: os.

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

Dosya taşımak için Python’da birden fazla seçeneğimiz var:

os.rename()os.replace() veya shutil.move() kullanabiliriz. Bu yöntemlerin hepsinde aynı sözdizimini kullanırız:

import os
import shutil

os.rename("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
os.replace("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
shutil.move("path/to/current/file.foo", "path/to/new/destination/for/file.foo")

file.foo dosya adını hem kaynak hem de hedef bağımsız değişkenlere eklemeniz gerektiğini unutmayın. Dosya adı değiştirilirse, dosya yeniden adlandırılır ve öyle taşınır.

Ayrıca, ilk iki durumda yeni dosyanın oluşturulduğu dizinin zaten var olması gerektiğini de unutmayın. Windows’da, bu isme sahip bir dosya bulunmamalıdır. Bu durumda bir özel durum hatası oluşturulması gerekir. Ancak os.replace() bu durumda bile sessizce diğer dosyanın yerini almasını sağlar.

Burada hatalardan kaçınmak için klasörün var olup olmadığını (ya da dosyanın veya yolun) kontrol edebilirsiniz.

Çoğu durumda shutil.move sadece os.rename‘i çağırır. Ancak, hedef kaynaktan farklı bir diskteyse, bunun yerine kaynak dosyayı kopyalar ve kaynağı siler.

os.rename() ve shutil.move() her ikisi de dosyaları yeniden adlandırsa da, Unix mv komutuna en yakın komut shutil.move()‘dır. Fark, os.rename() kaynak ve hedef farklı disklerdeyse çalışmazken, shutil.move() disk konusunda agnostiktir.

Yol’da dosya ve klasör isimleri

Kaynak ve hedef yolunda dosya ve klasör isimlerinin yazılmasına dikkat edilmesi gerektiğini hatırlatmakta fayda var. Burada karşılaşılabilecek bir sorun \ karakterinin yalnış kullanımı olabilir. \ karakterinin özel bir anlamı olduğunu unutmayın. Aşağıdadki örnekte Python, \CN00020 klasöründeki \C’yi özel bir karakter olarak yorumlar. Bunun için üç farklı çözüm yöntemini değerlendirebilirsiniz:

#Yanlış kullanım
shutil.move('D:\New Folder\CN00020', 'D:\Batch Upload')

# escape backspace
shutil.move('D:\\New Folder\\CN00020', 'D:\\Batch Upload')

# raw strings
shutil.move(r'D:\New Folder\CN00020', r'D:\Batch Upload')

# ileri slash kullanabilirsiniz - shutil bu kullanımı destekler
shutil.move('D:/New Folder/CN00020', 'D:/Batch Upload')

Dosyaları kopyalarken de benzer şekilde karakter kullanımına dikkat etmemiz gerektiğini unutmayın.

pathlib ile dosya taşıma

Python 3.4’den sonra, dosyayı taşımak için pathlib sınıfı da kullanılabilir.

from pathlib import Path

Path("path/to/current/file.foo").rename("path/to/new/destination/for/file.foo")
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!

Python’da birden fazla satırda kod nasıl yazılılr?

Birden çok satıra bölmek istediğimiz uzun bir kod satırımız olsun.

Temel Matematik Operatörleri

Python, tamsayı ve float bölme, çarpma, üs alma, toplama ve çıkarma dahil olmak üzere yaygın matematiksel işlemlerini başka bir modüle ihtiyaç duymadan yapabilir.

Python’da şimdiki saati nasıl gösteririz?

time Modülü time modülü geçen süreyi bize “saniyeler cinsinden” söyleyen fonksiyonlar sağlar.

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

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

Yorum Gönderin

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

koddla
Tema Mundana by WowThemes.net.