Elimizde bir txt (veya excel farketmez) dosya var ve her satırda bir isim var. (Ad Soyad veya Ad Ad Soyad vs gibi)
Örnek veriyorum dosya şu şekilde:
Barlas Kaftancı
Ufuk Ersoy
Ada Su Tetik
Abdullah Samet Baki
şeklinde uzun bir dosya. Ben şimdi dosyadaki veriyi şu hale getirmek istiyorum.
Ba** Ka**
Uf** Er**
Ad* Su Te**
Ab** Sa** Ba**
Bunu yaptım. Fakat yazdığım kod beni pek tatmin etmedi. Kodum şu şekilde.
with open("dosya/bilisimoyg1.txt","r",encoding="utf8") as d:
ekle = d.readlines()
kisiler = []
bos = []
for san in ekle:
bos.clear()
bol = san.split()
for ke in bol:
bos.append(ke[0:2]+"**")
kisiler.append(" ".join(bos)+'\n')
with open("dosya/oyg1.txt","w",encoding="utf8") as d:
d.writelines(kisiler)
Soru 1: Bunun daha kısa bir yolu var mı? (excel veya python kullanarak)
Soru 2: Daha temiz bir kod ve algoritmayla yapılabilir mi?
Soru 3: Kişilerin isim uzunluklarına göre * koymak işleri zorlaştırır mı? Veya nasıl yapılır?
iout = [" ".join([word[:2] + ("*" * (len(word) - 2)) for word in isim.split()]) for isim in iin]
ama isimleri sansurlemesen de olur. Iki harf zaten tek basina baya bilgi veriyor, uzunluk da eklediginde cok az kisinin ismi belirsiz kalacaktir.
Daha temiz bir kod icin kelime sansurleyen fonksiyona bir isim verebilirsin. Iki tane for loop’tan daha “temiz” bir algoritma olamaz.
Neden?
Excel dosyasini excel’de islemek daha kisa olacaktir. Bunda Python kurup calistirmak lazim, iki ekstra adim.
Bonus: Isimleri “ME∗∗∗∗” seklinde (2+n) sansurleyince yuzde kaci essiz bir ciktiya dusuyor? Kullanim agirliklarini eklersek insanlarin yuzde kaci essiz bir ciktiya dusuyor? Sansuru en yuksek ihtimale gore geri dondurursek insanlarin yuzde kacinin ismini dogru bir sekilde geri cevirmis oluyoruz?