Python

Cara Membaca dan Menulis Fail TOML Menggunakan Python

Cara Membaca dan Menulis Fail TOML Menggunakan Python
TOML, kependekan dari "Bahasa Minimal yang Boleh Dibaca Tom," adalah format fail yang agak baru dan popular yang memfokuskan pada semantik minimum untuk menulis fail konfigurasi. Format fail telah dibuat oleh Tom Preston-Werner, bekas CEO GitHub. Pada masa artikel ini ditulis, calon pelepasan pertama versi 1.0.0 telah ditandai, jadi spesifikasi lebih kurang dimuktamadkan. Artikel ini akan memberikan pengenalan ringkas mengenai format fail TOML dan menerangkan bagaimana format fail ini dapat digunakan dalam aplikasi dan skrip Python.

Contoh Fail Konfigurasi TOML

Spesifikasi untuk TOML merangkumi penggunaan pasangan nilai kunci peka huruf besar-kecil. Kekunci berada di sebelah kiri, sementara nilai di sebelah kanan; istilah ini dipisahkan di kedua-dua sisi dengan tanda sama. Pasangan nilai kunci serupa dengan sintaks deklarasi pemboleh ubah yang akan anda lihat dalam kebanyakan bahasa pengaturcaraan. Anda juga boleh menentukan jadual dan subtabel (bahagian dan bahagian) dalam tanda kurung untuk memastikan pasangan kunci-nilai tetap teratur untuk logik dan aplikasi penghuraian yang lebih baik dalam program anda. Nilai boleh terdiri daripada jenis string, integer, float, boolean, array, dan waktu dan tarikh. TOML membenarkan penggunaan sintaks dot sehingga anda dapat menentukan jadual (bahagian) sebagai "jadual.subtabel "atau kunci sebagai" kunci.pengecam, "juga. Sambungan fail yang digunakan untuk fail TOML adalah .toml. Berikut adalah contoh ringkas fail TOML:

name = "Permainan PC"
[lalai]
profile_name = "Profil"
player_name = "Pemain"
profile_created = 1979-05-27T07: 32: 00-08: 00
bunyi = benar
[pengguna]
[pengguna.profil]
nama = "profil1"
pemain_nama = "pemain1"
class = "pahlawan"
[pengguna.tetapan]
bunyi = palsu
[persediaan_ lalai]
pendekar = [["pedang", "perisai"], ["pelindung perisai", "helm plat"]]
mage = [["staff", "tongkat"], ["jubah", "tudung"]]
barang = [
"ramuan kesihatan",
"penawar",
"ramuan mana"
]

Sebagai rujukan, fail konfigurasi yang sama ditulis dalam JSON di bawah:


"name": "Permainan PC",
"lalai":
"profile_name": "Profil",
"player_name": "Pemain",
"profile_created": "1979-05-27T15: 32: 00.000Z ",
"suara": benar
,
"pengguna":
"profil":
"nama": "profil1",
"player_name": "pemain1",
"class": "pahlawan"
,
"tetapan":
"sound": salah

,
"default_inventory":
"pejuang": [
[
"pedang",
"perisai"
],
[
"perisai plat",
"helm plat"
]
],
"penyihir": [
[
"kakitangan",
"tongkat"
],
[
"jubah",
"penutup"
]
],
"item": [
"ramuan kesihatan",
"penawar",
"ramuan mana"
]

Perbezaan antara Format Fail JSON dan INI

TOML serupa dengan format JSON dan INI dalam banyak cara, dengan beberapa perbezaan yang dapat menentukan format fail yang ingin anda gunakan. Format fail TOML menekankan kebolehbacaan manusia dan kelihatan lebih bersih untuk dibaca. Fail INI tidak menyokong bahagian bersarang dan pasangan nilai-kunci bersarang. Tidak seperti JSON, TOML membenarkan komen (dengan simbol #). Data bersarang lama dalam fail JSON boleh ditulis dalam TOML hanya dalam beberapa baris.

Walau bagaimanapun, boleh membingungkan untuk mengenal pasti struktur dengan betul dalam hierarki bersarang lama di TOML, sementara di JSON strukturnya jauh lebih jelas, walaupun data bersarang mungkin kelihatan verbose. TOML terutamanya dirancang untuk fail konfigurasi dan bukan untuk set data berstruktur yang besar, sementara JSON sesuai untuk skala data berstruktur apa pun.

Modul Python TOML

Perpustakaan standard Python pada masa ini tidak mempunyai sokongan untuk menguraikan data TOML, semasa menulis artikel ini. Ini mungkin berubah selepas TOML versi 1.0.0 dilepaskan. Buat masa ini, anda perlu menggunakan modul Python pihak ketiga yang dipanggil toml. Anda boleh memasang modul ini di Ubuntu menggunakan salah satu arahan di bawah:

$ sudo apt pasang python3-toml
$ pip3 pasang toml

Menghuraikan Fail TOML Menggunakan Modul Python TOML

Menghuraikan fail TOML menggunakan modul python3-toml agak mudah. Anda boleh menggunakan "toml.memuatkan kaedah untuk menguraikan keseluruhan fail, atau anda boleh menggunakan "toml.memuat "kaedah untuk menguraikan mana-mana pasangan kunci-nilai berformat TOML tertentu. Dengan mengandaikan “data.fail toml ”mengandungi rentetan berformat TOML yang disebutkan dalam contoh di atas, kod di bawah ini akan menghurai dan mencetak data TOML sebagai kamus python:

#!/ usr / bin / env python3
import toml
mencetak (toml.memuatkan ("data.toml "))

Menjalankan kod di atas akan menghasilkan output berikut:

'name': 'PC Game', 'default': 'profile_name': 'Profile', 'player_name': 'Pemain',
'profile_created': masa masa.datetime (1979, 5, 27, 7, 32, tzinfo =objek di 0x7f3506b3d850>), 'sound': True, 'user': 'profile': 'name': 'profile1',
'player_name': 'player1', 'class': 'warrior', 'setting': 'sound': Salah,
'default_inventory': 'warrior': [['pedang', 'perisai'], ['pelindung periuk', 'helm plat']],
'mage': [['staff', 'tongkat'], ['jubah', 'tudung']], 'item': ['ramuan kesihatan', 'penawar',
'ramuan mana']

Setelah anda mempunyai objek kamus python, anda mungkin melaksanakan logik dalam program anda untuk mengendalikan data kamus.

Membuang Kamus Python sebagai Data Berformat TOML

Kamus python boleh dibuang ke rentetan berformat TOML menggunakan “toml.kaedah dumps, atau objek dapat dibuang ke dalam file menggunakan "toml.kaedah dump ”. Contoh di bawah ini akan menukar rentetan berformat objek nito TOML kamus:

#!/ usr / bin / env python3
import toml
data = toml.memuatkan ("data.toml ")
mencetak (toml.lambakan (data))

Menjalankan kod di atas akan menghasilkan output berikut:

name = "Permainan PC"
[lalai]
profile_name = "Profil"
player_name = "Pemain"
profile_created = 1979-05-27T07: 32: 00-08: 00
bunyi = benar

[persediaan_ lalai]
pendekar = [["pedang", "perisai",], ["pelindung perisai", "helm plat",],]
mage = [["staff", "tongkat",], ["jubah", "tudung",],]
item = ["ramuan kesihatan", "penawar", "ramuan mana",]

[pengguna.profil]
nama = "profil1"
pemain_nama = "pemain1"
class = "pahlawan"
[pengguna.tetapan]
bunyi = palsu

Untuk menukar objek kamus menjadi rentetan berformat TOML dan menyimpannya dalam fail, anda boleh menggunakan "toml.kaedah dump (kamus_objek, output_file) ”.

Kesimpulannya

Fail TOML dalam istilah yang lebih sederhana hanyalah fail konfigurasi INI dengan struktur dan sintaks yang lebih baik, memudahkan penghuraian yang lebih mudah dan pembacaan yang lebih baik. Format fail TOML sering dibandingkan dengan format fail JSON, tetapi selain penggunaannya dalam fail konfigurasi, TOML tidak mempunyai banyak utiliti. JSON, sebaliknya, jauh lebih serba boleh dan boleh digunakan dalam kes penggunaan yang berbeza yang memerlukan sebarang jenis struktur data.

Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...
Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...