İlan
04 Haz 2026 13 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme YAML Dosyalarını Python ile Ayrıştırma ve İşleme...
İlan Yan banner placeholder

YAML Dosyalarını Python ile Ayrıştırma ve İşleme

simkartmarket 15.04.2026 16:22 570 görüntüleme 1 cevap
Son Mesaj
simkartmarket
Üye
Üye
Katılım30 Oca 2026
Konular10
Mesajlar57
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
15.04.2026 16:22 #1


YAML nedir?
Bu veri biçimlendirme dili hakkındaki dersimizde zaten öğrendiğimiz gibi, YAML, YAML Ain't Markup Language'in kısaltmasıdır. Girinti ve iç içe geçme gibi çok az sözdizimi kullanarak insan tarafından kolayca okunabilir olacak şekilde tasarlanmıştır.

YAML, doğal olarak üç ana veri türünü destekler: skalerler (dizeler, tamsayılar ve ondalık sayılar gibi), listeler ve ilişkisel diziler (haritalar, sözlükler veya hash'ler olarak da bilinir), ancak özel veri türlerini de destekleyebilir. YAML dosyalarının resmi dosya uzantısı .yaml'dir.

Ağ iletişiminde, ağ cihazlarına depolanan ve iletilen yapılandırma dosyaları için yaygın olarak kullanılır. Ansible ve Terraform gibi ağ araçları tarafından kullanılan standart veri biçimlendirme dilidir.

YAML dosyalarının okunması ve yazılması birçok programlama dili tarafından desteklenir. YAML'yi ayrıştırmak için en popüler dillerden biri Python'dur. Bu eğitimde, PyYAML kütüphanesini kullanacağız.

PyYAML modülü
PyYAML, harici bir Python modülüdür ve kullanmaya başlamadan önce kurulması gerekir. Bunu yapmanın iki yolu vardır:

Yöntem 1: Kaynak Kod Üzerinden
Öncelikle, modülün kaynak kod sayfasına gidin ve depoyu zip dosyası olarak indirin. Ardından, bir terminal veya komut istemi kullanarak, dosyanın indirildiği dizine gidin ve aşağıdaki komutu çalıştırın:

Kod:
$ python setup.py install

Yöntem 2: Pip Aracılığıyla
Python'da YAML kütüphanesini kurmanın daha kolay bir yolu var. Ortamınızda pip paket yöneticisi kuruluysa, PyYAML'ı indirmek ve kurmak için aşağıdaki komutu kullanmanız yeterlidir:

Kod:
$ pip install pyyaml

Python'da YAML Dosyalarıyla Çalışma
Bu bölümde, YAML dosyalarını nasıl okuyup yazacağımızı, yani Python komut dosyalarıyla nasıl yükleyip manipüle edeceğimizi öğreneceğiz.

YAML Dosyalarını Okuma
Öncelikle üzerinde çalışacağımız örneği tanımlayalım. İlk dosyanın içeriği şu şekildedir:

Kod:
# router.yaml file

interfaces:

  - GigabitEthernet0/0
  - GigabitEthernet0/1
  - GigabitEthernet2/1
  - FastEthernet0/0/0
  - FastEthernet0/1/0
  - Serial0/0/0

prefixes:

  - 10.0.0.0/24
  - 1.2.3.0/24
  - 192.168.1.0/24
  - 172.16.12.0/22
  - 172.16.1.0/24
  - 198.54.1.0/28

İkinci dosya aşağıdaki gibidir:

Kod:
# network.yaml file

routers: 11
switches: 23
firewalls: 3
APs: 7
proxies: 1
Şimdi Python betiğiyle ilk örnek dosyayı açıp okuyalım. PyYAML modülündeki `load` yöntemini kullanacağız.

Kod:
import yaml

with open('router.yaml') as file:
    # The FullLoader parameter handles the conversion
    # from YAML scalar values to Python dictionary
    interfaces = yaml.load(file, Loader=yaml.FullLoader)

    print(interfaces)

Çıktı:

Kod:
{'interfaces': [
    'GigabitEthernet0/0',
    'GigabitEthernet0/1',
    'GigabitEthernet2/1',
    'FastEthernet0/0/0',
    'FastEthernet0/1/0',
    'Serial0/0/0',
    ],
'prefixes': [
    '10.0.0.0/24',
    '1.2.3.0/24',
    '192.168.1.0/24',
    '172.16.12.0/22',
    '172.16.1.0/24',
    '198.54.1.0/28',
    ]}

`yaml.load(file, Loader=yaml.FullLoader)` yöntemine geçirdiğimiz `Loader` parametresine dikkat edin; bu parametre, tam YAML dilini yükler ve YAML skalerlerinin Python sözlüklerine ve listelerine dönüştürülmesini sağlar.

ÖNEMLİ: Güvenilmeyen bir kaynaktan alınan herhangi bir veriyle `yaml.load` yöntemini çağırmak güvenli değildir, çünkü herhangi bir Python fonksiyonunu çağırabilir!

Yükleyiciyi bir argüman olarak belirtmek yerine, YAML'nin nasıl yükleneceğini gösteren aşağıdaki yöntemlerden birini doğrudan kullanabiliriz:

Kod:
- yaml.safe_load
- yaml.full_load
- yaml.unsafe_load

YAML Dosyaları Yazma
Önceki bölümde, Python'da YAML dosyalarını nasıl okuyacağımızı öğrendik. Şimdi bir Python sözlüğünü bir YAML dosyasına kaydetmeyi deneyelim. Bunun için, okuma örneğinden elde ettiğimiz sözlüğü kullanacağız.

Kod:
import yaml

dictionary = {'interfaces': [
    'GigabitEthernet0/0',
    'GigabitEthernet0/1',
    'GigabitEthernet2/1',
    'FastEthernet0/0/0',
    'FastEthernet0/1/0',
    'Serial0/0/0',
],
    'prefixes': [
        '10.0.0.0/24',
        '1.2.3.0/24',
        '192.168.1.0/24',
        '172.16.12.0/22',
        '172.16.1.0/24',
        '198.54.1.0/28',
    ]}

with open('interfaces.yaml', 'w') as file:
    interfaces = yaml.dump(dictionary, file)

`yaml.dump` fonksiyonu ilk parametre olarak bir Python sözlüğü alır ve ikinci parametre olarak geçirdiğimiz dosya nesnesinde tanımlandığı gibi bir YAML belgesi üretir.

Yukarıdaki kod çalıştırıldığında, aşağıdaki YAML dosyası elde edilir:

Kod:
interfaces:
- GigabitEthernet0/0
- GigabitEthernet0/1
- GigabitEthernet2/1
- FastEthernet0/0/0
- FastEthernet0/1/0
- Serial0/0/0
prefixes:
- 10.0.0.0/24
- 1.2.3.0/24
- 192.168.1.0/24
- 172.16.12.0/22
- 172.16.1.0/24
- 198.54.1.0/28


EREBOR
Rhn11
Üye
Üye
Katılım01 Ara 2025
Konular13
Mesajlar62
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
26.04.2026 00:34 #2
Eline sağlık
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder