Python

Kā lasīt un rakstīt TOML failus, izmantojot Python

Kā lasīt un rakstīt TOML failus, izmantojot Python
TOML, saīsinājums no “Toma acīmredzamās minimālās valodas”, ir salīdzinoši jauns un populārs failu formāts, kas koncentrējas uz minimālu konfigurācijas failu rakstīšanas semantiku. Faila formātu ir izveidojis Toms Prestons-Verners, bijušais GitHub izpilddirektors. Kopš šī raksta tapšanas 1. versijas pirmais izlaiduma kandidāts.0.0 ir atzīmēts, tāpēc specifikācija ir vairāk vai mazāk pabeigta. Šajā rakstā tiks sniegts īss ievads par TOML faila formātu un aprakstīts, kā šo faila formātu var izmantot Python lietojumprogrammās un skriptos.

TOML konfigurācijas faila piemērs

TOML specifikācija ietver reģistrjutīgu atslēgu un vērtību pāru izmantošanu. Taustiņi atrodas kreisajā pusē, savukārt vērtības būs labajā pusē; šos terminus abās pusēs atdala vienādības zīme. Atslēgu vērtību pāri ir identiski mainīgā deklarācijas sintaksei, kuru redzēsiet lielākajā daļā programmēšanas valodu. Jūs varat arī definēt tabulas un apakštabulas (sadaļas un apakšsadaļas) kvadrātiekavās, lai atslēgu un vērtību pāri būtu sakārtoti, lai uzlabotu parsēšanas loģiku un lietojumprogrammas jūsu programmās. Vērtības var būt virknes, vesels skaitlis, pludiņš, būla skaitlis, masīvs un laika un datuma tips. TOML ļauj izmantot punktu sintaksi, lai jūs varētu definēt tabulu (sadaļu) kā “tabulu.subtable ”vai atslēgu kā“ key.identifikators ”. TOML failam izmantotais faila paplašinājums ir .toml. Zemāk ir saīsināts TOML faila piemērs:

name = "PC Game"
[noklusējums]
profile_name = "Profils"
player_name = "Spēlētājs"
profile_created = 1979-05-27T07: 32: 00-08: 00
skaņa = taisnība
[lietotājs]
[lietotājs.profils]
name = "profile1"
player_name = "spēlētājs1"
class = "karavīrs"
[lietotājs.iestatījumi]
skaņa = nepatiesa
[default_inventory]
karavīrs = [["zobens", "vairogs"], ["bruņu plāksnes", "plāksnes stūre"]]
mags = [["personāls", "zizlis"], ["halāts", "kapuce"]]
vienumi = [
"veselības dzēriens",
"pretinde",
"mana dzeramais dzēriens"
]

Atsaucei tas pats konfigurācijas fails ir rakstīts JSON zemāk:


"name": "PC Game",
"noklusējums":
"profile_name": "Profils",
"player_name": "Spēlētājs",
"profile_created": "1979-05-27T15: 32: 00.000Z ",
"skaņa": taisnība
,
"lietotājs":
"profils":
"name": "profile1",
"player_name": "player1",
"klase": "karavīrs"
,
"iestatījumi":
"skaņa": nepatiesa

,
"default_inventory":
"karotājs": [
[
"zobens",
"vairogs"
],
[
"plāksnes bruņas",
"plāksnes stūre"
]
],
"mags": [
[
"personāls",
"zizlis"
],
[
"halāts",
"kapuce"
]
],
"preces": [
"veselības dzēriens",
"pretinde",
"mana dzeramais dzēriens"
]

Atšķirības starp JSON un INI failu formātiem

TOML daudzējādā ziņā ir līdzīgs JSON un INI formātiem, ar dažām atšķirībām, kas var noteikt, kuru faila formātu vēlaties izmantot. TOML faila formāts uzsver cilvēku lasāmību un šķiet daudz tīrāks lasīšanai. INI faili neatbalsta ligzdotās sadaļas un ligzdoto atslēgu un vērtību pārus. Atšķirībā no JSON, TOML atļauj komentēt (ar # simbolu). JSON failā ilgi ligzdotus datus TOML var ierakstīt tikai dažās rindiņās.

Tomēr var būt mulsinoši pareizi identificēt struktūru TOML ilgi ligzdotajās hierarhijās, savukārt JSON struktūra ir daudz skaidrāka, kaut arī ligzdotie dati var šķist verbāli. TOML galvenokārt paredzēts konfigurācijas failiem, nevis lielām strukturētu datu kopām, savukārt JSON ir piemērots jebkuram strukturētu datu mērogam.

Python TOML modulis

Šī raksta rakstīšanas laikā Python standarta bibliotēkām pašlaik nav atbalsta TOML datu parsēšanai. Pēc TOML 1. versijas tas var mainīties.0.0 tiek izlaists. Pagaidām jums būs jāizmanto trešās puses Python modulis ar nosaukumu toml. Jūs varat instalēt šo moduli Ubuntu, izmantojot vienu no tālāk norādītajām komandām:

$ sudo apt instalējiet python3-toml
$ pip3 instalēt toml

Parsējot TOML failu, izmantojot Python TOML moduli

Parsēt TOML failu, izmantojot modeli python3-toml, ir diezgan vienkārši. Varat izmantot “toml.ielādēt ”metodi, lai parsētu visu failu, vai arī varat izmantot“ toml.ielādē ”metodi, lai parsētu jebkuru konkrētu TOML formatētu atslēgu un vērtību pāri. Pieņemot, ka “dati.toml ”failā ir TOML formatētas virknes, kas minētas iepriekš minētajā piemērā, zemāk esošais kods parsēs un izdrukās TOML datus kā pitona vārdnīcu:

#!/ usr / bin / env python3
importa toml
izdruka (toml.ielādēt ("dati.toml "))

Palaidot iepriekš minēto kodu, tiks izveidota šāda izeja:

'name': 'PC Game', 'default': 'profile_name': 'Profile', 'player_name': 'Player',
'profile_created': datuma laiks.datuma laiks (1979, 5, 27, 7, 32, tzinfo =objekts pie 0x7f3506b3d850>), 'sound': True, 'user': 'profile': 'name': 'profile1',
'player_name': 'player1', 'class': 'warrior', 'settings': 'sound': False,
'default_inventory': 'karavīrs': [['zobens', 'vairogs'], ['šķīvja bruņas', 'plāksnes stūre']],
'mags': [['personāls', 'zizlis'], ['halāts', 'kapuce']], 'priekšmeti': ['veselības mikstūra', 'pretinde',
'mana potion']

Tagad, kad jums ir objekts python vārdnīca, varat savā programmā ieviest jebkuru loģiku, lai apstrādātu vārdnīcas datus.

Python vārdnīcas izgāšana kā TOML formatētus datus

Pitona vārdnīcu var ievietot TOML formatētās virknēs, izmantojot “toml.izgāzt ”metodi, vai objektu var izmest failā, izmantojot“ toml.dump ”metodi. Tālāk sniegtajā piemērā tiks pārveidotas vārdnīcas objekta nito TOML formatētas virknes:

#!/ usr / bin / env python3
importa toml
dati = toml.ielādēt ("dati.toml ")
izdruka (toml.izgāztuves (dati))

Palaidot iepriekš minēto kodu, tiks izveidota šāda izeja:

name = "PC Game"
[noklusējums]
profile_name = "Profils"
player_name = "Spēlētājs"
profile_created = 1979-05-27T07: 32: 00-08: 00
skaņa = taisnība

[default_inventory]
karavīrs = [["zobens", "vairogs",], ["plāksnīšu bruņas", "plāksnes stūre",],]
mags = [["personāls", "zizlis",], ["halāts", "kapuce",],]
preces = ["veselības mikstūra", "pretinde", "mana dziras",]

[lietotājs.profils]
name = "profile1"
player_name = "spēlētājs1"
class = "karavīrs"
[lietotājs.iestatījumi]
skaņa = nepatiesa

Lai pārveidotu vārdnīcas objektu TOML formatētā virknē un saglabātu to failā, varat izmantot “toml.dump (dictionary_object, output_file) ”metodi.

Secinājums

TOML fails vienkāršākā izteiksmē ir tikai INI konfigurācijas fails ar labāku struktūru un sintaksi, kas atvieglo parsēšanu un labāku lasāmību. TOML faila formātu bieži salīdzina ar JSON faila formātu, taču, izņemot to, ka tas tiek izmantots konfigurācijas failos, TOML nav daudz lietderības. Savukārt JSON ir daudz universālāks un to var izmantot dažādos lietošanas gadījumos, kad nepieciešama jebkura veida datu struktūra.

Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...
WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...