koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da bir dosyaya yazı nasıl eklenir?

Var olan dosyanın üzerine yazmak yerine dosyaya ekleme nasıl yapılır?

Bunun en basit yöntemi açma modunu “a” veya “ab” seçerek dosyayı ekleme modunda açmaktır. Bkz. open().

Python’un üç ana modu vardır:

'w'   write - yazma modu
'r'   read - okuma modu
'a'   append - ekleme modu

Bu nedenle, bir dosyaya ekleme yapmak istersek dosyayı a ile açmak yeterli olur:

f = open('filename.txt', 'a') 
f.write('ne eklemek istiyorsanız')

İşinizi daha da kolaylaştıracak mod varyasyonları da bulunur:

'r+'  oku + yaz
'w+'  oku + yaz
'a+'  sona ekle + oku 

Son olarak, ikili biçimde (binary) okuma/yazma modları vardır:

'rb'  binary oku
'wb'  binary yaz
'ab'  binary ekle
'rb+' binary oku ve yaz
'wb+' binary oku ve yaz
'ab+' binary ekle ve yaz

“a” moduyla açtığınızda, yazma konumu her zaman dosyanın sonunda (ekleme) olacaktır. Okumaya, geriye doğru aramaya ve okumaya izin vermek için “a+” ile açabilirsiniz (ancak tüm yazmalar hala dosyanın sonunda olacaktır!).

Örnek:

>>> with open('test1','wb') as f:
        f.write('test')
>>> with open('test1','ab') as f:
        f.write('koko')
>>> with open('test1','rb') as f:
        f.read()
'testkoko'

Not: ‘a’ kullanmak ,’w’ ile açmak ve dosyanın sonuna kadar aramakla aynı şey değildir – başka bir program dosyayı açar ve arama ile yazma arasında yazmaya başlarsa neler olabileceğini düşünün. Bazı işletim sistemlerinde, dosyayı ‘a’ ile açmak, tüm yazma işlemlerinizin dosyanın sonuna atomik olarak eklendiğini garanti eder.


“A” modunun nasıl çalıştığı hakkında birkaç ayrıntı daha verelim. Geri arasanız bile, her yazma dosyanın sonuna eklenir:

>>> f = open('test','a+')
>>> f.write('hi')
>>> f.seek(0)
>>> f.read()
'hi'
>>> f.seek(0)
>>> f.write('bye') # seek(0)'a rağmen en sona eklenir!
>>> f.seek(0)
>>> f.read()
'hibye'

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top