Soru & Cevap

python dosya içerisindeki herhangi iki kelime veya değer arasındakileri nasıl alabilirim?

02.03.2023 - 11:40

dosyada bulunan anahtar kelimeler arasındaki değerleri almam gerekiyor bunun için pythonda method bulamadım.

112 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user aliemre0007
aliemre0007
07.03.2023 - 11:09

import json

with open("dosya.json") as f:
    data = json.load(f)
    degerler = data["anahtar1"]["anahtar2"]
 

Profile picture for user abdurrahmanvarol
abdurrahmanvarol
04.03.2023 - 09:42

Merhaba, karakter karakter okumayı deneyebilirsin. Anahtar kelimen örneğin 3 karakterse 3 karakterli bir değişken oluşturup 

her karakter okunduğunda o değişkenden bir karakter çıkarıp bir karakter ekleyerek her döngüde o değişken aradığın anahtar kelimeye eşit mi diye bir kontrol koyabilirsin. Anahtar kelime geldikten sonra gelen tüm karakterleri başka bir değişkende toplayabilirsin ta ki diğer anahtar kelime gelene kadar. 

Böyle bir mantık yürüttüm. Python ile çalışmadığım için bir kod parçası paylaşamıyorum. Umarım işini görür.

Profile picture for user karahilall00
karahilall00
03.03.2023 - 11:48

Bunun için farklı yöntemler kullanabilirsin. Regex'te kullanabilirsin. Ama daha basit yöntem ile split kullanarak yapabilirsin.
split() metodu listeyi belirtilen ayıracı kullanarak yeniden döndürür. yani split() karakter dizilerini istenen şekilde böler.


Örneğin: "Merhaba,dünya".split(", ")  burada virgül karakterine göre ayırdığından "Merhaba" ve "dünya" yı içeren bir liste döndürecektir. Sonuç olarak ["Merhaba", "dünya"] bu şekilde döndürülür.

Burada kelime1 kelime2 diye iki tane değerimiz var. 

with open("dosya.txt", "r") as file:
    for line in file:
        if "kelime1" in line and "kelime2" in line:
            value = line.split("kelime1")[1].split("kelime2")[0]
            print(value)

Bu örnek kodda split() fonksiyonu kullanılarak "kelime1" ve "kelime2" arasındaki değerler alınır.

split("kelime1")[1] fonksiyonu, "kelime1" kelimesinden sonraki tüm karakterleri döndürür. Tekrar split("kelime2")[0] fonksiyonunu kullanarak, "kelime2" kelimesinden önceki tüm karakterleri döndürür. Böylelikle her satırdaki iki kelime arasındaki değerleri almış oluruz.