Skip to content

Instantly share code, notes, and snippets.

@s1rat-dev
Created February 5, 2021 21:54
Show Gist options
  • Save s1rat-dev/99b646d771f2e842a163cf69bda942ed to your computer and use it in GitHub Desktop.
Save s1rat-dev/99b646d771f2e842a163cf69bda942ed to your computer and use it in GitHub Desktop.
[PYTHON] Dosya yönetimi ve işlemlerini - write,read,update,append - kısaca ve kendimce derledim.
# open() komudu ile dosya işlemleri başlar,
# open('dosya_adi','islem_adi') formatında olur.
# w -> Dosya yazma islemi, -> Eğer dosya yoksa olusturur, var ise de olan dosyayı sıfırlayıp tekrar yazar.
file = open('filename.txt', 'w', encoding='utf-8') # encoding='utf-8' türkçe karakterlerin okunmasına izin verir.
file.write('Selam Sırat!')
file.close()
file = open('filename.txt', 'w', encoding='utf-8')
file.close()
# Bu işlemler sonrasında dosyada sadece
# Naber nasılsın?
# yazar. Bunun nedeni ilk başta belirttiğimiz durumdur.
# r -> Dosya okuma islemi, -> Eğer dosya yoksa hata verir, var ise okuma fonksiyonları ile içeriği elde edilebilir.
file = open('filename.txt', 'r', encoding='utf-8')
# -------- DOSYA OKUMA ISLEMLERI ----------
# 1: for dongusu
print('--- FOR DONGUSU ---')
for i in file:
print(i, end='')
print(end='\n')
# 2: read() fonksiyonu
# Dosya for dongusunde okunurken imleç en sona geldiği ve
# öyle kaldığı için eğer imleç geri yerine döndürülmez ise
# boş değer döndürecektir.
# Bu yüzden file.seek(0) ile imleci başlangıca getirebilir, ya da dosya açma işlemini tekrar başlatabiliriz.
# Ben file.seek(0) seçeneğini tercih ediyorum.
file.seek(0)
print('--- READ() FONK ---')
content = file.read()
print(content)
# 3: readline() fonksiyonu
file.seek(0)
print('--- READLINE() FONK ---')
print(file.readline(), end='')
print(file.readline(), end='')
print(file.readline(), end='')
print(end='\n')
# 4: readlines() fonksiyonu
file.seek(0)
print('--- READLINES() FONK ---')
list = file.readlines()
for i in range(len(list)):
print(list[i], end='')
file.close()
with open('filename2.txt', 'r', encoding='utf-8') as file:
# Bu tür kullanımda file.close() komuduna gerek yoktur.
# Çünkü sistem alt satırlarındaki kodlar işleme geçtikten sonra kendisi ilgili dosyayı kapatır.
content = file.read(5) # İlk 5 haneyi okumasını istiyoruz.
print(content)
print(file.tell()) # file.tell() -> İmlecin o anda bulunduğu indexi döndürür.
content2 = file.read(10)
print(content2)
print(file.tell())
file.seek(0)
print(file.tell())
# 'r+' ve 'a'(append) komutları ile dosya üzerinde güncelleme yapılabilir.
# ******* BELLİ BİR İNDEXTE DEĞİŞİKLİK YAPMA ********
# with open('filename.txt','r+',encoding='utf-8') as file:
# file.write('deneme1')
# file.seek(20)
# file.write('deneme2')
# file.seek(0)
# content = file.read()
# print(content)
'''
Orginal file content:
Sırat nasılsın?
Beni soracak olursan,
Ben gayet iyiyim.
'''
# ******* DOSYANIN SONUNA EKLEME ********
with open('filename.txt', 'a', encoding='utf-8') as file:
file.write('Umarım bir gün görüşürüz.')
with open('filename.txt', 'r', encoding='utf-8') as file:
print('DOSYA SONUNA EKLEME')
content = file.read()
print(content)
"""
after this state,
Sırat nasılsın?
Beni soracak olursan,
Ben gayet iyiyim.
Umarım bir gün görüşürüz.
"""
# ******* DOSYANIN BAŞINA EKLEME ********
with open('filename.txt', 'r+', encoding='utf-8') as file:
print('DOSYA BASINA EKLEME')
content = file.read()
firstSentence = 'Öncelikle merhaba,\n'
content = firstSentence + content
file.seek(0)
file.write(content)
file.seek(0)
print(file.read())
"""
after this state,
Öncelikle merhaba,
Sırat nasılsın?
Beni soracak olursan,
Ben gayet iyiyim.
Umarım bir gün görürsün.
"""
# ******* DOSYA ORTASINA EKLEME *********
with open('filename.txt', 'r+', encoding='utf-8') as file:
print('DOSYA ORTASINA EKLEME')
list = file.readlines()
average = int(len(list) / 2) + 1
addContent = 'Ha bu arada...\n'
list.insert(average, addContent)
file.seek(0)
for i in list:
file.write(i)
file.seek(0)
print(file.read())
"""
after this state,
Öncelikle merhaba,
Sırat nasılsın?
Ha bu arada...
Beni soracak olursan,
Ben gayet iyiyim.
Umarım bir gün görürsün.
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment