Python Dosyanın İlk Satırındaki İlk Kelimeyi Seçme

Dostlar merhaba, elimde 1000 adet ad-soyad içeren (.txt) metin dosyası var. Python ile dosyanın ilk satırındaki ilk kelimeyi nasıl seçebilirim ? Böylelikle ilk kelimede adı seçicek, ad-soyad birlikte almamış olucak.

Merhaba,

Şu şekilde sadece isimleri alabilirsiniz:

def func(file_name):
	with open(file_name) as file:
		for x in file.readlines():
			print(x.strip().split()[0])


func("profiles.txt")
# profiles.txt
ad1 soyad1
ad2 soyad2
ad3 soyad3
ad4 soyad4
1 Beğeni
f = open('filename', 'x')
content = f.read()
first_word = content.splitlines()[0].split[0]
f.close()
1 Beğeni

hocam peki çift isimliler de nasıl yapabilirim.

str.split bütün metin üzerinde işlem yapıyor. Bize sadece ilk satır lazım.

1 Beğeni
f = open('filename', 'x')
content = f.read()
first_line = content.splitlines()[0]
_ = first_line.split()
name = _.remove(_[-1]).join(' ')
f.close()

Ayni sekilde.

Bir dosyanin ilk satirindaki ilk kelime, dosyanin icindeki isimlerin ciftliginden bagimsiz.

hocam filename yerine dosyanın ismini yazıyorum isimlererkek.txt diye aynı dizinde olmasına rağmen dosya bulunamadı hatası veriyor neden acaba ?

Bilmiyorum, hic veri yok.

Bu arada write (w) kipini kullanirsan dosyadaki veriler silinir, ustune yazilir. Kullanirken append (a) olarak degistir.

Çift isimli derken, sanırım Mehmet ali Xoğlu gibi ikinci ismi olan insanlardan bahsediyorsunuz. Bunun için listenin ilk 2 elemanını almalısınız. Kodları şöyle değiştirin:

def func(file_name):
	with open(file_name) as file: #dosyayı okuma modunda açıyoruz.
		 # readlines() dosya içerisindeki satırlardan
		 # oluşan bir liste döndürüyor.
		 for x in file.readlines():
			# Her satırdaki \n kaçış dizilerini yok etmek için
			# strip() metodunu kullanıyoruz.
			# ardından string tipindeki satırı boşluklardan bölüyoruz
			# elimize 3 elemanlı bir liste geçiyor
			# bu listenin ilk 2 elemanını alıyoruz.
			print(x.strip().split()[:2])


func("profiles.txt")
# profiles.txt

ad1 ad2 soyad1
ad2 ad2 soyad2
ad3 ad2 soyad3
ad4 ad2 soyad4
ad5 ad2 soyad5

Ben son kelime haric hepsini almistim. 3 isim olur ama 2 soyisim olmaz. :slight_smile:

Evet, varmış. Gerçekten yeni öğrendim :slight_smile:

Cok nadir var, ama var.

https://eksisozluk.com/uc-isimli-olmak--461484

1 Beğeni

TabError: inconsistent use of tabs and spaces in indentation hatası alıyorum

print(x.strip().split()[:2]) bu satır için

hocam cevap olarak yazılan kodların hepsinde hata veriyor neden acaba ?

Tüm satırları sola doğru sıfır olacak şekilde kaydırın. Ardından tekrar girintileri ekleyin.

return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: ‘charmap’ codec can’t decode byte 0x9e in position 132: character maps to

şuan da böyle hata verdi

Şu kısmı şununla değiştirin:

open(file_name, encoding="utf-8")

Sonuç alamazsanız, text dosyasını paylaşın bizimle. Daha fazla yardımcı olabiliriz.

1 Beğeni
def func(file_name):

    with open(file_name, encoding="utf-8") as file:

        for x in file.readlines():

            print(x.strip().split()[0])

func("isimlererkek.txt")

bu kod bütün adları listeliyor ben ilk satırdaki adı istiyorum nasıl yapabilirim hocam ?

def func(file_name, satir_no):
   with open(file_name, encoding="utf-8") as file:
      return file.readlines()[satir_no].split()[:2]

print(func("profiles.txt", 0))

Temel dosya işlemlerini öğrenirsiniz, problem yok. Ancak neticede o dosya içerisinde veri var. O verinin türü nedir, nasıl manipüle edebilirsiniz, bunu bilmezseniz dosyalar pek de işinize yaramaz. Dosya işlemlerini öğrenmeden önce veri tiplerini/yapılarını öğrenmelisiniz. Şuradan ilerleyebilirsiniz. Fonksiyonlar konusuna kadar, veri tipleri anlatılıyor. Fonksiyonlara varmadan önce de temel dosya işlemlerini göreceksiniz, ki bu zaten aradığınız şey.
İyi çalışmalar.

1 Beğeni