Сачувајте реч у датотеку

Save Dict File



Речник је веома познат објект у питхону. И то је збирка кључева и вредности. Кључ диктата мора бити непроменљив и може бити целобројни, плутајући, низ, али ни листа ни сам дицт не могу бити кључ. Дакле, понекад морамо сачувати дицт објекте у датотеку. Дакле, видећемо различите методе за чување дицт објекта у датотеци.

Речник можемо записати у датотеку у Питхону на различите начине, на пример:







  1. Датотека вредности раздвојена зарезима (.цсв)
  2. Јсон датотека (.јсон)
  3. Текстуална датотека (.ткт)
  4. Датотека за туршију (.пкл)

Објаснићемо све горе наведене методе.



Метод 1: Сачувајте речник у ЦСВ формату

Да бисмо речник сачували у ЦСВ (Зарезом одвојене вредности), користимо ЦСВ модул. Вредности раздвојене зарезима за чување питхон дицт-а најчешћи су и најпознатији метод. Већина програмера користи ову методу само за чување речника у датотеци. Чување речника у датотеци као ЦСВ је врло једноставно јер морамо пренети податке као низ.



Пример_1: дицт_то_цсв.пи





# дицт_то_цсв.пи
увоз цсв

дицт_сампле= {'име':„ЛинукХинт“, 'град':'ТО', 'образовање':'Инжењеринг'}

са отворен('дата.цсв', 'ин') каоф:
закључудицт_сампле.кључеве():
ф.писати('% с,% с н'%(кључ,дицт_сампле[кључ]))

Линија 2 : Увозимо ЦСВ питхон модул.

Ред 4 : Креирали смо узорак дицт података. Покушаћемо да га сачувамо у облику ЦСВ датотеке.



Ред 6: Овде користимо израз „витх“ за писање ЦСВ датотеке. Наредба „витх“ аутоматски обрађује изузетке током читања или писања датотеке. Отварамо датотеку дата.цсв у режиму писања и додељујемо тај објекат променљивој ф.

Ред 7 , Покрећемо фор петљу која издваја кључ, ау следећем реду записује кључ и кеи_валуе у ЦСВ датотеку. Дакле, ова петља ће се покретати све док нема података.

Излаз: дата.цсв

име,ЛинукХинт
град,ТО
образовање,Инжењеринг

Дакле, горе наведено приказује излазну датотеку након писања на дата.цсв.

Сада разумемо како сачувати дикт у датотеку у облику ЦСВ -а. Покушајмо са другим примером где желимо да упишемо листу дицт објеката у ЦСВ датотеку.

Пример_2: дицт_то_цсв_2.пи

# дицт_то_цсв_2.пи

увоз цсв

цсвЦолумнс= ['Град', „Држава“, 'Ранг']
дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]
цсвФилеНаме= 'дата.цсв'
покушати:
са отворен(цсвФилеНаме, 'ин') каоф:
писац= цсв.ДицтВритер(ф,имена поља=цсвЦолумнс)
писац.заглавље писања()
заподатакаудицтДемо:
писац.вритеров(података)
осим ИОЕррор:
принт(„Дошло је до грешке“)

Редови 3 до 12: Увозимо питхон ЦСВ модул и креирамо листу дицт објеката. Такође смо направили листу имена колона.

Ред 13: Име датотеке ЦСВ смо доделили променљивој.

Ред 15: Користимо наредбу ‘витх’, а изјава додељује објекат методе __ентер__ за враћање променљивој ф.

Редови 16 до 19: Након додељивања повратног објекта променљивој ф, позвали смо методу ДицтВритер ЦСВ модула и проследили два параметра (назив датотеке (ф) и имена колона). Затим позивамо другу методу вритехеадер () која ће написати први ред ЦСВ датотеке, што је генерално назив поља. Затим покрећемо фор петљу на листи дицт објеката и уписујемо један по један у ЦСВ датотеку користећи вритеров () методу.

2. метод: Сачувајте дикт у текстуалну датотеку у ЈСОН формату (режим додавања)

Такође можемо сачувати дицт објекте у облику ЈСОН -а у датотеку. Код испод објашњава исто. Овај код такође објашњава како можемо додати нови ЈСОН на постојећу листу ЈСОН -а.

Пример : дицт_то_филе_асЈСОН.пи

#дицт_то_филе_асЈСОН.пи

увозјсон

дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]

назив документа= 'дицт.јсон'

# Писање листе дицт објеката у датотеку
са отворен(назив документа,моде='ин') каоф:
јсон.Депонија(дицтДемо,ф)

# Писање новог дицт објекта у датотеку као додавање и преписивање целе датотеке
са отворен(назив документа,моде='ин') каоф:
дицтДемо.додати({'Град':'Бејинг', „Држава“:„Кина“})
јсон.Депонија(дицтДемо,ф)

Оутпут : дицт.јсон

[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
{'Град':'Бејинг', „Држава“:„Кина“}
]

Редови 1 до 13 : Увозимо ЈСОН модул. Затим креирамо листу дицт објеката за демо. Затим смо имену ЈСОН датотеке доделили променљиво име датотеке.

Редови 15 до 17 : Користимо израз 'витх' за отварање ЈСОН датотеке за писање, а затим користимо методу јсон.думп за претварање дицт објеката у ЈСОН, а затим упис у датотеку.

Редови 20 до 22: Ове линије су веома важне, јер шта ће се догодити? Ако покушамо да додамо нове ЈСОН објекте у већ написане датотеке. Претходни подаци ће бити изгубљени због преписивања. Затим можемо користити претходни назив листе дицт као што смо то учинили (дицтДемо), а затим додајемо нови објект у то. И на крају, претварамо целу датотеку у ЈСОН и преписујемо целу датотеку.

У излазу можемо видети да је нови ЈСОН објекат додат на постојећу ЈСОН листу.

Метод 3: Сачувајте објекте речника у датотеку у ткт облику

Речник такође можемо сачувати у нормалан формат низа у датотеку. Дакле, доња метода је врло једноставан начин за чување објеката речника у датотеци у текстуалном облику. Али овај код неће радити ако желимо да додамо нови објекат речника у датотеку јер ће преписати претходно написане податке. Дакле, за то ћемо видети у следећем коду.

Пример: дицт_то_ткт.пи

#дицт_то_ткт.пи

дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]

назив документа= 'дицт.ткт'

# Писање листе дицт објеката у датотеку
са отворен(назив документа,моде='ин') каоф:
ф.писати(п(дицтДемо))

Излаз: дицт.ткт

[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7}]

Редови 1 до 11 : Направили смо листу објеката речника и доделили име датотеке дицт.ткт променљивом имену датотеке.

Редови 14 до 15 : Овде користимо израз „витх“ који аутоматски обрађује изузетак. И записујемо дицт листу објеката као низ у датотеку.

Пример: дицт_то_ткт_2.пи

Видели смо како сачувати дицт објекте у датотеку у .ткт форми. Али у горњем коду постоји један проблем са додавањем новог објекта. Дакле, мењамо методу додавања из 'в' у 'а', што може решити наш проблем као што је приказано испод у коду.

#дицт_то_ткт_2.пи

'' ': цвар
Овај код ће сачувати дицт објекте у датотеци са
мод додавања.
'' '

дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]

назив документа= 'дицт_то_филе_аппендМоде.ткт'

# Писање листе дицт објеката у датотеку
са отворен(назив документа,моде='до') каоф:
ф.писати(п(дицтДемо))

Ред 7 до 15 : Направили смо листу објеката речника и доделили име датотеке дицт_то_филе_аппендМоде.ткт променљивом имену датотеке.

Редови 18 до 19 : Мењамо начин рада = ‘а’ и то ће решити наш проблем. Доњи излаз показује да смо додали два дицт објекта у исту датотеку без преписивања претходних података.

Излаз: дицт_то_филе_аппендМоде.ткт

[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7}]

[{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7}]

Метод 4: Сачувајте дицт објекат у датотеку помоћу методе пицкле.

Такође можемо сачувати дицт објекат у датотеку помоћу питхон пицкле модула. Пицкле модул подржава многе објекте за сериализацију у питхону и такође подржава дицт објекте.

# дицт_то_филе_усе_пицкле.пи

увоз кисели краставац

дицтДемо= [
{'Град':'Њу Јорк', „Држава“:'КОРИСТИ', 'Ранг':3},
{'Град':'Сиднеј', „Држава“:'Аустралија', 'Ранг':5},
{'Град':'Дубаи', „Држава“:'УАЕ', 'Ранг':10},
{'Град':'Мумбаи', „Држава“:'Индија', 'Ранг':17},
{'Град':'Бејинг', „Држава“:„Кина“, 'Ранг':7},
]

назив документа= 'пицклефиле.пкл'

са отворен(назив документа, 'далеко') каоф:
кисели краставац.Депонија(дицтДемо,ф)

Линија 3 до 13 : Увозимо пицкле модула и креирамо листу дицт објеката. Такође креирамо назив датотеке у коју ћемо сачувати наше дицт објекте.

Редови 15 до 16 : Овде користимо израз „витх“ и отварамо датотеку у режиму додавања и бинарном формату. Затим избацујемо дицт објекте у датотеку.

Закључак

Дакле, видели смо различите методе за чување речничког објекта у датотеци. Од корисника зависи како желе да сачувају објекат у датотеку. Најчешћи начини чувања дицт објекта у датотеци су ЈСОН и ЦСВ. Формати ЈСОН и ЦСВ су веома познати са програмске тачке гледишта или су лаки за руковање у питхону. Такође смо видели додајући начин чувања датотека.

Код за овај чланак можете преузети са ове везе:

хттпс://гитхуб.цом/схекхарпандеи89/саве-дицт-објецт-то-а-филе