Питхон

Како се рукује ЦСВ датотекама у Питхону

Како се рукује ЦСВ датотекама у Питхону
Овај чланак покрива упутства за руковање „цсв“ датотекама помоћу Питхона. Израз „цсв“ означава „вредности одвојене зарезом“ где сваки ред или ред садржи вредности засноване на тексту одвојене зарезима. У неким случајевима се за одвајање вредности користи и „зарез“ уместо „зарез“. Међутим, ово нема велике разлике у правилима формата датотека, а логика руковања с оба типа сепаратора остаје иста.

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

Читање података из ЦСВ датотека помоћу Питхона

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

Узмите у обзир да имате ЦСВ датотеку која садржи следеће податке:

Манго, банана, јабука, наранџа
50,70,30,90

Први ред датотеке дефинише сваку категорију колоне, назив плода у овом случају. Други ред чува вредности испод сваке колоне (залиха у руци). Све ове вредности су ограничене зарезом. Ако бисте ову датотеку отворили у апликацији за прорачунске таблице попут ЛибреОффице Цалц, изгледала би овако:

Сада да читамо вредности из „воћа.цсв “користећи Питхонов модул„ цсв “, мораћете да користите метод„ читача “у следећем формату:

увоз цсв
са отвореним („плодовима.цсв ") као датотека:
дата_реадер = цсв.читач (датотека)
за линију у дата_реадер:
испис (линија)

Прва линија у горњем узорку увози модул „цсв“. Даље се изјава „са отвореним“ користи за сигурно отварање датотеке која је сачувана на вашем чврстом диску („воће.цсв ”у овом случају). Нови објект „дата_реадер“ креира се позивањем методе „читач“ из модула „цсв“. Ова метода „читача“ узима назив датотеке као обавезни аргумент, па референца на „плодове.цсв “му се преноси. Затим се покреће изјава петље „фор“ за испис сваког реда из „плодова“.цсв ”. Након покретања горе поменутог узорка кода, требали бисте добити следећи излаз:

['50', '70', '30', '90']

Ако желите да доделите бројеве редова за излаз, можете користити функцију „набрајање“ која додељује број свакој ставци у итералу (почевши од 0, осим ако се не промени).

увоз цсв
са отвореним („плодовима.цсв ") као датотека:
дата_реадер = цсв.читач (датотека)
за индекс, ред у набрајању (читач података):
испис (индекс, ред)

Варијабла „индекс“ задржава број за сваки елемент. Након покретања горе поменутог узорка кода, требали бисте добити следећи излаз:

0 ['Манго', 'Банана', 'Јабука', 'Наранџаста']
1 ['50', '70', '30', '90']

Будући да први ред у „цсв“ датотеци обично садржи наслове ступаца, можете да користите функцију „енумерате“ да бисте издвојили ове наслове:

увоз цсв
са отвореним („плодовима.цсв ") као датотека:
дата_реадер = цсв.читач (датотека)
за индекс, ред у набрајању (читач података):
ако је индекс == 0:
наслови = линија
штампа (наслови)

Блок „ако“ у горенаведеној изјави проверава да ли је индекс једнак нули (први ред у „воће.цсв ”датотека). Ако је одговор да, тада је вредност променљиве „лине“ додељена новој променљивој „хеадингс“. Након покретања горњег узорка кода требали бисте добити следећи излаз:

['Манго', 'Банана', 'Јабука', 'Наранџа']

Имајте на уму да приликом позивања „цсв.читач ”методом помоћу опционалног аргумента„ граничник ”у следећем формату:

увоз цсв
са отвореним („плодовима.цсв ") као датотека:
дата_реадер = цсв.читач (датотека, граничник = ";")
за линију у дата_реадер:
испис (линија)

Будући да је у цсв датотеци свака колона повезана са вредностима у реду, можда ћете желети да направите Питхон „речник“ објекат када читате податке из „цсв“ датотеке. Да бисте то урадили, потребно је да користите методу „ДицтРеадер“, као што је приказано у доњем коду:

увоз цсв
са отвореним („плодовима.цсв ") као датотека:
дата_реадер = цсв.ДицтРеадер (датотека)
за линију у дата_реадер:
испис (линија)

Након покретања горе поменутог узорка кода, требали бисте добити следећи излаз:

'Манго': '50', 'Банана': '70', 'Јабука': '30', 'Наранџаста': '90'

Дакле, сада имате објекат речника који повезује појединачне колоне са њиховим одговарајућим вредностима у редовима. Ово добро функционише ако имате само један ред. Претпоставимо да „плодови.цсв ”датотека сада укључује додатни ред који наводи колико ће дана требати да залиха воћа пропадне.

Манго, банана, јабука, наранџа
50,70,30,90
3,1,6,4

Када имате више редова, покретање истог горњег узорка кода даће различите резултате.

'Манго': '50', 'Банана': '70', 'Јабука': '30', 'Наранџаста': '90'
'Манго': '3', 'Банана': '1', 'Аппле': '6', 'Оранге': '4'

Ово можда није идеално јер ћете можда желети да пресликате све вредности које се односе на једну колону у један пар кључ / вредност у Питхон речнику. Испробајте овај пример кода:

увоз цсв
са отвореним („плодовима.цсв ") као датотека:
дата_реадер = цсв.ДицтРеадер (датотека)
дата_дицт =
за линију у дата_реадер:
за кључ, вредност у реду.предмета ():
дата_дицт.сетдефаулт (тастер, [])
дата_дицт [кључ].додати (вредност)
испис (дата_дицт)

Након покретања горе поменутог узорка кода, требали бисте добити следећи излаз:

'Манго': ['50', '3'], 'Банана': ['70', '1'], 'Аппле': ['30', '6'], 'Оранге': ['90 ',' 4 ']

Петља „фор“ користи се на сваком елементу „ДицтРеадер“ објекта за петљу преко парова кључ / вредност. Пре тога је дефинисана нова променљива речника Питхон „дата_дицт“. Чуваће коначна мапирања података. Испод другог блока петље „фор“ користи се метода „сетдефаулт“ Питхон речника. Ова метода додељује вредност кључу речника. Ако пар кључ / вредност не постоји, од наведених аргумената креира се нови. Дакле, у овом случају кључу ће бити додељена нова празна листа ако она већ не постоји. И на крају, вредност се додаје одговарајућем кључу у коначном објекту „дата_дицт“.

Записивање података у ЦСВ датотеку

Да бисте записали податке у „цсв“ датотеку, мораћете да користите методу „Вритер“ из модула „цсв“. Пример доле ће додати нови ред постојећим „плодовима.цсв ”.

увоз цсв
са отвореним („плодовима.цсв "," а ") као датотека:
дата_вритер = цсв.писац (датотека)
дата_вритер.писање ([3,1,6,4])

Прва изјава отвара датотеку у режиму „додавање“, означено аргументом „а“. Затим се позива метода „писац“ и референца на „воће.цсв ”му се предаје као аргумент. Метода „вритеров“ записује или додаје нови ред у датотеку.

Ако желите претворити Питхон речник у „цсв“ структуру датотеке и сачувати излаз у „цсв“ датотеку, покушајте са овим кодом:

увоз цсв
са отвореним („плодовима.цсв "," в ") као датотека:
наслови = ["Манго", "Банана", "Јабука", "Наранџа"]
дата_вритер = цсв.ДицтВритер (датотека, имена поља = наслови)
дата_вритер.хеадер за писање ()
дата_вритер.вритеров ("Манго": 50, "Банана": 70, "Јабука": 30, "Наранџа": 90)
дата_вритер.вритеров ("Манго": 3, "Банана": 1, "Аппле": 6, "Оранге": 4)

Након отварања празног „воћа.цсв “помоћу израза„ са отвореним “дефинисана је нова променљива„ хеадингс “која садржи наслове колона. Нови објект „дата_вритер“ креира се позивањем методе „ДицтВритер“ и прослеђивањем референце на „воће.цсв “и аргумент„ имена поља “. У следећем реду, наслови колона се записују у датотеку методом „хеадхеад“. Последње две изјаве додају нове редове у одговарајуће наслове креиране у претходном кораку.

Закључак

ЦСВ датотеке пружају уредан начин писања података у табеларном формату. Уграђени Питхон модул „цсв“ олакшава руковање подацима доступним у „цсв“ датотекама и примену даље логике на њему.

Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...
0 А.Д. Приручник
Од многих стратешких игара тамо, 0 А.Д. успева да се истакне као свеобухватан наслов и врло дубока, тактичка игра упркос томе што је отворен извор. Ра...
Водич за Унити3Д
Увод у Унити 3Д Унити 3Д је моћан мотор за развој игара. То је унакрсна платформа која вам омогућава да креирате игре за мобилне уређаје, веб, стоне р...