piton

Python Kullanarak TOML Dosyaları Nasıl Okunur ve Yazılır

Python Kullanarak TOML Dosyaları Nasıl Okunur ve Yazılır
“Tom's Obvious Minimal Language”ın kısaltması olan TOML, yapılandırma dosyalarının yazılması için minimum semantik üzerine odaklanan nispeten yeni ve popüler bir dosya formatıdır. Dosya formatı GitHub'ın eski CEO'su Tom Preston-Werner tarafından oluşturuldu. Bu makalenin yazıldığı tarih itibariyle, sürüm 1'in ilk sürüm adayı.0.0 etiketlendi, bu nedenle spesifikasyon aşağı yukarı tamamlandı. Bu makale TOML dosya formatına kısa bir giriş yapacak ve bu dosya formatının Python uygulamalarında ve komut dosyalarında nasıl kullanılabileceğini açıklayacaktır.

TOML Yapılandırma Dosyası Örneği

TOML spesifikasyonu, büyük/küçük harfe duyarlı anahtar/değer çiftlerinin kullanımını içerir. Anahtarlar sol tarafta, değerler ise sağ tarafta olacak; bu terimler her iki tarafta eşittir işaretiyle ayrılır. Anahtar/değer çiftleri, çoğu programlama dilinde göreceğiniz değişken bildirim sözdizimiyle aynıdır. Ayrıca, programlarınızdaki gelişmiş ayrıştırma mantığı ve uygulaması için anahtar/değer çiftlerini düzenli tutmak için köşeli parantez içinde tabloları ve alt tabloları (bölümler ve alt bölümler) tanımlayabilirsiniz. Değerler dize, tamsayı, kayan nokta, boolean, dizi ve saat ve tarih türlerinde olabilir. TOML, bir tabloyu (bölümü) “tablo” olarak tanımlayabilmeniz için nokta sözdiziminin kullanılmasına izin verir.alt tablo” veya “anahtar” olarak bir anahtar.tanımlayıcı”. TOML dosyası için kullanılan dosya uzantısı .tom. Aşağıda bir TOML dosyasının kısaltılmış bir örneği verilmiştir:

isim = "PC Oyunu"
[varsayılan]
profile_name = "Profil"
player_name = "Oyuncu"
profile_created = 1979-05-27T07:32:00-08:00
ses = doğru
[kullanıcı]
[kullanıcı.profil]
isim = "profil1"
oyuncu_adı = "oyuncu1"
sınıf = "savaşçı"
[kullanıcı.ayarlar]
ses = yanlış
[varsayılan_envanter]
savaşçı = [ ["kılıç", "kalkan"], ["plaka zırh", "plaka miğfer"] ]
mage = [["personel", "asa"], ["elbise", "başlık"]]
öğeler = [
"Can iksiri",
"panzehir",
"mana iksiri"
]

Başvuru için, aynı yapılandırma dosyası aşağıdaki JSON'da yazılmıştır:


"isim": "PC Oyunu",
"varsayılan":
"profil_adı": "Profil",
"player_name": "Oyuncu",
"profile_created": "1979-05-27T15:32:00.000Z",
"ses": doğru
,
"kullanıcı":
"profil":
"ad": "profil1",
"player_name": "player1",
"sınıf": "savaşçı"
,
"ayarlar":
"ses": yanlış

,
"varsayılan_envanter":
"savaşçı": [
[
"kılıç",
"kalkan"
],
[
"Plaka zırhı",
"plaka dümeni"
]
],
"büyücü": [
[
"Personel",
"asa"
],
[
"elbise",
"başlık"
]
],
"öğeler": [
"Can iksiri",
"panzehir",
"mana iksiri"
]

JSON ve INI Dosya Formatları Arasındaki Farklar

TOML, JSON ve INI biçimlerine birçok yönden benzerdir, ancak hangi dosya biçimini kullanmak isteyeceğinizi belirleyebilecek birkaç farklılık vardır. TOML dosya formatı, insan tarafından okunabilirliği vurgular ve okunması daha temiz görünür. INI dosyaları iç içe bölümleri ve iç içe anahtar/değer çiftlerini desteklemez. JSON'dan farklı olarak TOML yorumlara izin verir (# sembolü ile). Bir JSON dosyasındaki uzun iç içe geçmiş veriler, yalnızca birkaç satırda TOML'de yazılabilir.

Bununla birlikte, TOML'de uzun iç içe hiyerarşilerdeki yapıyı düzgün bir şekilde tanımlamak kafa karıştırıcı olabilir, JSON'da ise iç içe veriler ayrıntılı görünse bile yapı çok daha açıktır. TOML, büyük yapılandırılmış veri kümeleri için değil, öncelikle yapılandırma dosyaları için tasarlanmıştır; JSON ise herhangi bir yapılandırılmış veri ölçeği için uygundur.

Python TOML Modülü

Python standart kitaplıkları, bu makalenin yazıldığı sırada şu anda TOML verilerinin ayrıştırılması için herhangi bir desteğe sahip değildir. Bu, TOML sürüm 1'den sonra değişebilir.0.0 serbest bırakıldı. Şimdilik, adlı üçüncü taraf Python modülünü kullanmanız gerekecek tom. Bu modülü aşağıdaki komutlardan birini kullanarak Ubuntu'ya kurabilirsiniz:

$ sudo apt yükleme python3-toml
$ pip3 kurulum toml

Python TOML Modülünü Kullanarak TOML Dosyasını Ayrıştırma

python3-toml modülünü kullanarak bir TOML dosyasını ayrıştırmak oldukça basittir. "toml" ifadesini kullanabilirsiniz.Tüm dosyayı ayrıştırmak için load” yöntemini kullanabilir veya “toml.Herhangi bir TOML biçimli anahtar/değer çiftini ayrıştırmak için "load" yöntemi. bir "veri" olduğunu varsayarsak.toml” dosyası, yukarıdaki örnekte bahsedilen TOML formatlı dizeleri içerir, aşağıdaki kod TOML verilerini bir python sözlüğü olarak ayrıştırır ve yazdırır:

#!/usr/bin/env python3
ithalat toml
yazdır.veri yükle.tom"))

Yukarıdaki kodu çalıştırmak aşağıdaki çıktıyı üretecektir:

'name': 'PC Oyunu', 'varsayılan': 'profil_adı': 'Profil', 'oyuncu_adı': 'Oyuncu',
'profile_created': tarihsaat.tarihsaat(1979, 5, 27, 7, 32, tzinfo=0x7f3506b3d850> adresindeki nesne), 'ses': Doğru, 'kullanıcı': 'profil': 'ad': 'profil1',
'oyuncu_adı': 'oyuncu1', 'sınıf': 'savaşçı', 'ayarlar': 'ses': Yanlış,
'default_envanter': 'savaşçı': [['kılıç', 'kalkan'], ['plaka zırh', 'plakalı miğfer']],
'büyücü': [['personel', 'asa'], ['elbise', 'başlık']], 'eşyalar': ['sağlık iksiri', 'panzehir',
'mana iksiri']

Artık bir python sözlük nesnesine sahip olduğunuza göre, sözlük verilerini işlemek için programınızdaki herhangi bir mantığı uygulayabilirsiniz.

Bir Python Sözlüğünü TOML Biçimli Veri Olarak Dökme

Bir python sözlüğü, “toml” kullanılarak TOML formatlı dizelere dökülebilir.dumps” yöntemi veya nesne “toml” kullanılarak bir dosyaya atılabilir.boşaltma” yöntemi. Aşağıdaki örnek, bir sözlük nesnesini TOML formatlı dizelere dönüştürür:

#!/usr/bin/env python3
ithalat toml
veri = tom.veri yükle.tom")
yazdır.dökümler(veri))

Yukarıdaki kodu çalıştırmak aşağıdaki çıktıyı üretecektir:

isim = "PC Oyunu"
[varsayılan]
profile_name = "Profil"
player_name = "Oyuncu"
profile_created = 1979-05-27T07:32:00-08:00
ses = doğru

[varsayılan_envanter]
savaşçı = [ [ "kılıç", "kalkan",], [ "plaka zırh", "plaka miğfer",],]
mage = [ [ "personel", "asa",], [ "elbise", "başlık",],]
item = [ "sağlık iksiri", "panzehir", "mana iksiri",]

[kullanıcı.profil]
isim = "profil1"
oyuncu_adı = "oyuncu1"
sınıf = "savaşçı"
[kullanıcı.ayarlar]
ses = yanlış

Bir sözlük nesnesini TOML formatlı bir dizgeye dönüştürmek ve bir dosyada saklamak için “toml” komutunu kullanabilirsiniz.dump(dictionary_object, output_file)” yöntemi.

Sonuç

Daha basit terimlerle ifade edilen bir TOML dosyası, daha kolay ayrıştırma ve daha iyi okunabilirlik sağlayan, daha iyi yapıya ve söz dizimine sahip bir INI yapılandırma dosyasıdır. TOML dosya biçimi genellikle JSON dosya biçimiyle karşılaştırılır, ancak yapılandırma dosyalarındaki kullanımının dışında TOML'nin pek bir faydası yoktur. JSON ise çok daha çok yönlüdür ve herhangi bir veri yapısı türü gerektiren farklı kullanım durumlarında kullanılabilir.

Linux'ta FPS Nasıl Arttırılır?
FPS'nin kısaltması Saniyedeki Kare Sayısı. FPS'nin görevi, video oynatma veya oyun performanslarındaki kare hızını ölçmektir. Basit bir deyişle, her s...
En İyi Oculus Uygulama Laboratuvarı Oyunları
Oculus başlık sahibiyseniz, yandan yükleme hakkında bilgi sahibi olmalısınız. Sideloading, kulaklığınıza mağaza dışı içerik yükleme işlemidir. SideQue...
Ubuntu'da Oynanacak En İyi 10 Oyun
Windows platformu, günümüzde doğal olarak Windows'u desteklemek için geliştirilen oyunların büyük bir yüzdesi nedeniyle oyun oynamak için hakim platfo...