Ana içeriğe atla

Python'da Metin Dosyalarını İçe Aktarma ve Yazma

Bu makale, Python, NumPy ve Python’un yerleşik yöntemlerini kullanarak metin dosyalarını Python’a aktarmanın farklı yollarını kapsar. Ayrıca bunların listelere nasıl dönüştürüleceğini de ele alır.
Güncel 3 Eki 2026  · 6 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin

Kodu çalıştır

Bu eğitimde Python’da metin dosyalarının nasıl okunacağını ele alıyoruz. Bu, özellikle Doğal Dil İşleme (“NLP”) içeren metin verisi projelerinde atılması gereken temel bir ilk adımdır. Metin dosyalarını Python’a aktarırken bazı incelikler ve yaygın tuzaklar vardır; bu da veri bilimcilerin metin verisini en verimli şekilde işlemek için genellikle pandas gibi tanıdık paketlerin dışına çıkmasını gerektirir.

Bu makaleden en iyi şekilde yararlanmak için temel Python bilgisine sahip olmanız beklenir; özellikle string, integer ve liste gibi veri türleri arasındaki farkları anlamanız faydalı olacaktır. Ayrıca pandas ve dataframe kavramlarına aşina olmanız da yarar sağlar. 

.csv dosyalarından veri aktarma hakkında bilgi almak isterseniz, bu konu pandas read csv() Eğitimi: Veri İçe Aktarma yazısında ele alınmıştır. JSON ve pickle (.pkl) dosyalarından içe aktarmayı öğrenmek için Veriyi pandas’a Aktarma eğitimine göz atın. HTML sayfalarını web’den kazımakla ilgileniyorsanız, Python (ve Beautiful Soup) ile Web Kazıma size göre olabilir. Alternatif olarak, Python’da Veri İçe Aktarmaya Giriş adlı etkileşimli kursumuzla doğrudan DataCamp’te öğrenmeye başlayabilirsiniz; ilk bölüm ücretsizdir.

Metin Dosyası

Bu eğitim için, Doğal Dil İşleme başlıklı Wikipedia sayfasının ilk paragrafının kopyalanıp yapıştırılmış hâli olan basit bir metin dosyası kullanacağız. Bu dosya nlp_wiki.txt adıyla kaydedilmiştir.  İçeriği aşağıdaki gibidir:

"Natural language processing (NLP) is an interdisciplinary subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human language, in particular how to program computers to process and analyze large amounts of natural language data. The goal is a computer capable of "understanding" the contents of documents, including the contextual nuances of the language within them. The technology can then accurately extract information and insights contained in the documents as well as categorize and organize the documents themselves. Challenges in natural language processing frequently involve speech recognition, natural-language understanding, and natural-language generation."

Python’da metin verisi içe aktarma

pandas read_table() fonksiyonu ile veri içe aktarma

pandas’ın read_table() fonksiyonu, (ör. sütunları virgülle ayrılmış, metin dosyası olarak kaydedilmiş bir e-tablo gibi) ayrılmış metin dosyalarını bir dataframe’e okumak için tasarlanmıştır. Metin dosyamız ayrılmış değil. Sadece bazı metinlerin kopyala-yapıştır hâli. Yine de, bu fonksiyonun söz dizimi read_csv()’e benzer olduğundan ve çoğu veri bilimci buna aşina olduğundan, pandas kullanmak içeriği hızlıca görmek için faydalı olabilir.

Aşağıdaki kod, bir metin dosyasını pandas ile okumak için kullanılabilir.

pd.read_table('nlp_wiki.txt', header=None, delimiter=None)

Çıktı:

image1.png

read_table() fonksiyonumuza metin dosyasının adını ve iki argüman geçiriyoruz. 

  • header=None, ilk satırın bir başlık değil metin içerdiğini pandas’a bildirir. 
  • delimiter=None, pandas’a satırları hiçbir yerde (yeni satırlar hariç) bölmemesini söyler; böylece her satır için tek sütun olur.

Bu durumda bir DataFrame her zaman ideal değildir. Paragraflar ayrı satırlara bölünmüştür (pandas bunu yapmak için yeni satır karakterini kullanır) ve tam çıktıyı göremeyebiliriz. Başka bir seçenek de sütun için .to_list() metodunu çağırmaktır.

pd.read_table('nlp_wiki.txt', header=None, delimiter=None)[0].to_list()

Çıktı:

image2.png

Bu, normal bir Python listesi gibi erişilebilen bir liste döndürür. Ayrıca tam metni de yazdırır.

read_table() ile içe aktarmayı özelleştirme

read_table() fonksiyonunun, resmî dokümantasyonda okuyabileceğiniz çok sayıda isteğe bağlı anahtar argümanı vardır. İşte en kullanışlı olanlardan birkaçı:

skiprows=n

image3.png

İlk n satırı atlar. Bizim örneğimizde ilk satırı atladık.

nrows=n

image4.png

İlk n satırı tutar. Örneğimizde ilk satırı tuttuk.

skip_blank_lines= True  

pandas, boş bir satır döndürmek yerine herhangi bir NaN değerini atlar.

NumPy'nin loadtxt() ile metin verisi içe aktarma

NumPy’nin loadtxt() fonksiyonu, bir metin dosyasından sayı dizilerini okumak için tasarlanmıştır; ancak metin satırlarını okumak için de kullanılabilir. Çıktısı bir NumPy dizisi olduğundan ve analizin geri kalanında NumPy kullanıyorsanız bu oldukça kullanışlıdır.

np.loadtxt('nlp_wiki.txt', dtype="str", delimiter="\0")

Çıktı:

image5.png

pandas örneğinde olduğu gibi, satırların bölünmesini önlemek için delimiter argümanını geçiriyoruz. Bu durumda ayırıcı tek bir karakter olmalıdır (None kullanmak farklı bir davranışa yol açar), bu yüzden “null sonlandırma” karakteri \0 kullanılır. Bu karakter bir string’in ortasında bulunamayacağından, bunu kullanmak “ayırıcı kullanma” anlamına gelir.

Ayrıca dtype="str" geçiriyoruz; bu, NumPy’ye ortaya çıkan dizinin veri türünü bildirir. Bizim durumda “str” kullanıyoruz ve bu bir string döndürür. Bu da .tolist() fonksiyonu ile listeye dönüştürülebilir.

Python’un yerleşik open() fonksiyonu ile metin dosyalarını içe aktarma

En yüksek esneklik Python’un yerleşik işlevselliği kullanılarak elde edilir. Bu yaklaşım daha az kullanıcı dostudur ve öncelikle yazılım mühendisliği için tasarlanmıştır. Veri analizi için genellikle pandas veya NumPy çözümleri yeterlidir.

open() kullanmak için bir bağlam yöneticisine de ihtiyacınız vardır; bu da with anahtar sözcüğüdür. Bu, girintili with altındaki kod çalıştığı süre boyunca bilgisayarınızın kaynaklarını tahsis eder. Bu örnekte dosyayı açıyor, döngüyle okuyup lines değişkenine bellekte saklıyor ve sonra kapatıyoruz.

Buradaki for döngüsü bir liste üreteci kullanır; her satır, open() fonksiyonunun yorumladığı şekilde bir satırdır; bu durumda yeni satır (\n)’dır.

Bu kod bloğu ayrıca, her nesnenin (veya satırın) başındaki ve sonundaki fazladan boşlukları kaldıran strip() fonksiyonunu kullanır.

with open(filename) as file:
    lines = [line.strip() for line in file]

Çıktı:

image7.png

Gördüğünüz gibi bu, listedeki her öğenin bir paragraf olduğu tek bir liste döndürür. pandas ve NumPy örneklerinden farklı olarak burada üç nesne var; çünkü özgün metinde paragrafların arasında iki yeni satır bulunuyor.

Python’da metin dosyaları yazma 

Artık Python’da metin dosyalarını içe aktarmayı ele aldığığımıza göre, metin dosyalarının nasıl yazılacağına bakalım. Dosya yazmaktan kastımız, Python’dan bilgisayarınıza metin dosyaları kaydetmektir. Bu, özellikle Python’da metin dosyalarını işlediğinizde ve çıktıyı kaydetmek istediğinizde kullanışlıdır. 

Yerleşik write() yöntemiyle metin dosyaları yazma

Python’da yerleşik write() yöntemiyle metin dosyaları yazabilirsiniz. Bunun için ayrıca open() kullanmanız ve bir bağlam yöneticisine, yani with anahtar sözcüğüne ihtiyacınız vardır. Bir örnekle gösterelim:

with open("new_nlp_wiki.txt", "w") as file:
  file.write("New wiki entry: ChatGPT")

Bu örnekte, new_nlp_wiki.txt adlı bir dosyayı yazma modunda ('w' argümanı) açtık; bu, dosyanın mevcut içeriğinin üzerine yazılacağı anlamına gelir. Ardından dosya nesnesi üzerinde write() metodunu çağırarak “New wiki entry: ChatGPT” ifadesini dosyaya yazdık.

Mevcut bir dosyanın üzerine yazmak yerine sonuna metin eklemek isterseniz, dosyayı ekleme modunda ('a' argümanı) açabilirsiniz:

with open("new_nlp_wiki.txt", "a") as file:
    file.write("New wiki entry: ChatGPT")

pandas to_csv() yöntemiyle metin dosyaları yazma

pandas kullanarak bir metin dosyası yazmanın muhtemelen en kolay yolu to_csv() metodunu kullanmaktır. Hadi uygulamada görelim!

nlp_wiki = pd.read_table("nlp_wiki.txt", header=None, delimiter=None)
nlp_wiki.to_csv("nlp_wiki_pandas.txt", sep="\t", index=False)

Kodun ilk satırında, önceki bir bölümde anlatıldığı gibi read_table() yöntemiyle bir metin dosyasını okuduk. Ardından dosyayı to_csv() yöntemiyle kaydettik, ayırıcıyı tab karakteri ('\t') olarak belirledik ve çıktıdan satır indeksini hariç tutmak için index argümanını False yaptık.

Özet

Umarız bu eğitimden keyif almışsınızdır! Kısaca neler ele aldığımıza bakalım:

Konular
Python

Python Kursları

Kurs

Python’a Giriş

4 sa
7.1M
Python ile veri analizi temellerini sadece dört saatte öğrenin. Bu çevrimiçi kurs, Python arayüzünü tanıtacak ve popüler paketleri keşfedecektir.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör