Питхон

Како читати и писати ТОМЛ датотеке користећи Питхон

Како читати и писати ТОМЛ датотеке користећи Питхон
ТОМЛ, скраћеница од „Томов очигледни минимални језик“, релативно је нов и популаран формат датотеке који се фокусира на минималну семантику за писање конфигурационих датотека. Формат датотеке креирао је Том Престон-Вернер, бивши извршни директор ГитХуб-а. Од тренутка писања овог чланка, кандидат за прво издање верзије 1.0.0 је означен, тако да је спецификација мање или више финализована. Овај чланак ће дати кратки увод у формат датотеке ТОМЛ и описати како се овај формат датотеке може користити у Питхон апликацијама и скриптама.

Пример датотеке за конфигурацију ТОМЛ

Спецификација за ТОМЛ укључује употребу парова кључ / вредност осетљивих на велика и мала слова. Тастери су на левој страни, док ће вредности бити на десној страни; ови појмови су одвојени са обе стране знаком једнакости. Парови кључ / вредност идентични су синтакси декларације променљивих коју ћете видети у већини програмских језика. Такође можете да дефинишете табеле и поттабеле (одељци и пододсеци) у угластим заградама како би парови кључ / вредност били организовани ради побољшане логике рашчлањивања и примене у вашим програмима. Вредности могу бити стринг, интегер, флоат, боолеан, арраи и време и датум. ТОМЛ дозвољава употребу тачке синтаксе тако да можете дефинисати табелу (одељак) као „табела.подтабела “или кључ као„ кључ.идентификатор “. Екстензија датотеке која се користи за ТОМЛ датотеку је .томл. Испод је скраћени пример ТОМЛ датотеке:

наме = "ПЦ игра"
[Уобичајено]
профиле_наме = "Профил"
плаиер_наме = "Плаиер"
профиле_цреатед = 1979-05-27Т07: 32: 00-08: 00
звук = истина
[корисник]
[корисник.профил]
наме = "профил1"
плаиер_наме = "плаиер1"
цласс = "ратник"
[корисник.подешавања]
звук = нетачно
[дефаулт_инвентори]
ратник = [["мач", "штит"], ["тањир оклоп", "плоча кормило"]]
маге = [["штап", "штапић"], ["огртач", "капуљача"]]
предмета = [
"напитак за здравље",
"противотров",
"напитак мана"
]

За референцу, иста конфигурациона датотека написана је у ЈСОН-у испод:


"наме": "ПЦ игра",
"Уобичајено":
"профиле_наме": "Профил",
"плаиер_наме": "Плаиер",
"профиле_цреатед": "1979-05-27Т15: 32: 00.000З ",
„звук“: тачно
,
"корисник":
"профил":
"наме": "профиле1",
"плаиер_наме": "плаиер1",
"цласс": "ратник"
,
"подешавања":
„звук“: нетачно

,
"дефаулт_инвентори":
"ратник": [
[
"мач",
"штит"
],
[
"тањир оклоп",
"кормило са плочом"
]
],
"маг": [
[
"особље",
"штапић"
],
[
"хаљина",
"капуљача"
]
],
"предмети": [
"напитак за здравље",
"противотров",
"напитак мана"
]

Разлике између формата датотека ЈСОН и ИНИ

ТОМЛ је на много начина сличан форматима ЈСОН и ИНИ, са неколико разлика које могу одредити који формат датотеке ћете желети да користите. ТОМЛ формат датотеке наглашава читљивост људи и чини се много чистијим за читање. ИНИ датотеке не подржавају угнијежђене одјељке и угнијежђене парове кључ / вриједност. За разлику од ЈСОН-а, ТОМЛ дозвољава коментаре (са симболом #). Дуго угнежђени подаци у ЈСОН датотеци могу се записати у ТОМЛ у само неколико редова.

Међутим, може бити збуњујуће правилно идентификовати структуру у дуго угнежђеним хијерархијама у ТОМЛ-у, док је у ЈСОН-у структура много јаснија, иако угнежђени подаци могу изгледати опширно. ТОМЛ је првенствено дизајниран за конфигурационе датотеке, а не за велике скупове структурираних података, док је ЈСОН погодан за било коју скалу структурираних података.

Питхон ТОМЛ модул

Питхон стандардне библиотеке тренутно немају подршку за рашчлањивање ТОМЛ података у време писања овог чланка. Ово се може променити након ТОМЛ верзије 1.0.0 је пуштен. За сада ћете морати да користите независни Питхон модул под називом томл. Овај модул можете да инсталирате у Убунту помоћу једне од наредби у наставку:

$ судо апт инсталирај питхон3-томл
$ пип3 инсталирај томл

Рашчлањивање ТОМЛ датотеке помоћу Питхон ТОМЛ модула

Рашчлањивање ТОМЛ датотеке помоћу питхон3-томл модула прилично је једноставно. Можете користити „томл.лоад “за рашчлањивање целе датотеке, или можете користити„ томл.учитава ”методом за рашчлањивање било ког одређеног пара кључ / вредност форматираног у ТОМЛ-у. Под претпоставком „података.томл ”датотека садржи низове форматиране у ТОМЛ-у поменуте у примеру изнад, доњи код ће рашчланити и исписати ТОМЛ податке као питхон речник:

#!/ уср / бин / енв питхон3
увоз томл
штампа (томл.лоад ("подаци.томл "))

Покретање горњег кода даће следећи резултат:

'наме': 'ПЦ Гаме', 'дефаулт': 'профиле_наме': 'Профиле', 'плаиер_наме': 'Плаиер',
'профиле_цреатед': датум и време.датетиме (1979, 5, 27, 7, 32, тзинфо =објект на 0к7ф3506б3д850>), 'звук': Тачно, 'корисник': 'профил': 'име': 'профил1',
'плаиер_наме': 'плаиер1', 'цласс': 'варриор', 'сеттингс': 'соунд': Фалсе,
'дефаулт_инвентори': 'ратник': [['мач', 'штит'], ['тањир оклоп', 'кормило плоче]]],
„маге“: [[„штап“, „штапић“], [„огртач“, „капуљача]]],„ предмети ”: [„ напитак за здравље “,„ протуотров “,
'напитак мана']

Сада када имате објекат речника питхон, можете применити било коју логику у свом програму за руковање подацима речника.

Избацивање Питхон-овог речника као ТОМЛ обликованих података

Питхон речник се може избацити у низове обликоване у ТОМЛ помоћу „томл.думпс “, или се објекат може убацити у датотеку помоћу„ томл.думп “метода. Пример у наставку ће претворити објект речника нито ТОМЛ форматиране низове:

#!/ уср / бин / енв питхон3
увоз томл
подаци = томл.лоад ("подаци.томл ")
штампа (томл.депоније (подаци))

Покретање горњег кода даће следећи излаз:

наме = "ПЦ игра"
[Уобичајено]
профиле_наме = "Профил"
плаиер_наме = "Плаиер"
профиле_цреатед = 1979-05-27Т07: 32: 00-08: 00
звук = истина

[дефаулт_инвентори]
ратник = [["мач", "штит",], ["тањир оклоп", "плоча кормило",],]
маге = [["штап", "штапић",], ["огртач", "капуљача",],]
итемс = ["напитак за здравље", "протуотров", "напитак за ману",]

[корисник.профил]
наме = "профил1"
плаиер_наме = "плаиер1"
цласс = "ратник"
[корисник.подешавања]
звук = нетачно

Да бисте претворили објект речника у низ форматиран у ТОМЛ-у и сачували га у датотеци, можете користити „томл.думп (објецт_објецт, оутпут_филе) ”метода.

Закључак

Једноставније речено, ТОМЛ датотека је само ИНИ конфигурациона датотека са бољом структуром и синтаксом, олакшавајући рашчлањивање и бољу читљивост. ТОМЛ формат датотеке често се упоређује са форматом ЈСОН датотеке, али осим што се користи у конфигурационим датотекама, ТОМЛ нема много корисних програма. С друге стране, ЈСОН је много свестранији и може се користити у различитим случајевима употребе који захтевају било који тип структуре података.

Како користити Ксдотоол за подстицање кликова мишем и притиска тастера у Линуку
Ксдотоол је бесплатан алат за командну линију отвореног кода за симулацију кликова мишем и притиска тастера. Овај чланак ће покрити кратак водич о кор...
Топ 5 ергономских производа за рачунарски миш за Линук
Да ли дуготрајна употреба рачунара изазива бол у зглобу или прстима? Патите ли од укочених зглобова и стално морате да се рукујете? Да ли осећате гору...
Како променити поставке миша и додирне табле помоћу Ксинпут-а у Линук-у
Већина Линук дистрибуција подразумевано испоручује библиотеку „либинпут“ за обраду улазних догађаја на систему. Може да обрађује улазне догађаје и на ...