Рад са цсв датотекама у Питхон-у

Рад са цсв датотекама у Питхон-у

А ЦСВ (вредности одвојене зарезима) датотека је обична текстуална датотека у којој сваки ред представља запис података, а поља унутар сваког записа су одвојена зарезима. Обично се користи за табеле и базе података због своје једноставности и читљивости.

Испод су неке операције које изводимо док радимо са Питхон ЦСВ датотекама у Питхон-у

Читање ЦСВ датотеке

Читање из ЦСВ датотеке се врши помоћу објекта читача. ЦСВ датотека се отвара као текстуална датотека са Питхон-овом уграђеном функцијом опен() која враћа објекат датотеке. У овом примеру прво отварамо ЦСВ датотеку у РЕАД режиму датотечни објекат се конвертује у цсв.реадер објекат и одвија се даља операција. Шифра и детаљно објашњење су дати у наставку.

Python
   import   csv   filename   =   'aapl.csv'   # File name   fields   =   []   # Column names   rows   =   []   # Data rows   with   open  (  filename     'r'  )   as   csvfile  :   csvreader   =   csv  .  reader  (  csvfile  )   # Reader object   fields   =   next  (  csvreader  )   # Read header   for   row   in   csvreader  :   # Read rows   rows  .  append  (  row  )   print  (  'Total no. of rows:   %d  '   %   csvreader  .  line_num  )   # Row count   print  (  'Field names are: '   +   ' '  .  join  (  fields  ))   print  (  '  n  First 5 rows are:  n  '  )   for   row   in   rows  [:  5  ]:   for   col   in   row  :   print  (  '  %10s  '   %   col     end  =  ' '  )   print  (  '  n  '  )   

Излаз

Рад са цсв датотекама у Питхон-у

Горњи пример користи ЦСВ датотеку аапл.цсв који се може преузети са овде .

Објашњење:

  • са отвореним (...) отвара ЦСВ датотеку у режиму читања безбедно користећи менаџер контекста.
  • цсв.реадер(цсвфиле) претвара датотеку у објекат ЦСВ читача.
  • следећи (цсвреадер) издваја први ред као заглавља колона.
  • Петља кроз цсвреадер да додате сваки ред (као листу) редовима.
  • Одштампајте заглавља укупних редова и првих 5 редова података у форматираном приказу.

Читање ЦСВ датотека у речник помоћу цсв

Можемо прочитати ЦСВ датотеку у речник користећи цсв модул у Питхон-у и класу цсв.ДицтРеадер. Ево примера:

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

имедепартментбиртхдаи_монтх
Јохн СмитхХРЈул
Алице ЈохнсонИТОцтобер
Боб ВиллиамсФинанцеЈануари

Пример: Ово чита сваки ред као речник (заглавља као кључеви), а затим га додаје листи.

Python
   import   csv   with   open  (  'employees.csv'     mode  =  'r'  )   as   file  :   csv_reader   =   csv  .  DictReader  (  file  )   # Create DictReader   data_list   =   []   # List to store dictionaries   for   row   in   csv_reader  :   data_list  .  append  (  row  )   for   data   in   data_list  :   print  (  data  )   

Излаз:

{'име': 'Јохн Смитх' 'департмент': 'ХР' 'биртхдаи_монтх': 'Јули'}
{'наме': 'Алице Јохнсон' 'департмент': 'ИТ' 'биртхдаи_монтх': 'Октобар'}
{'име': 'Боб Вилијамс' 'одељење': 'Финансије' 'биртхдаи_монтх': 'Јануар'}

Објашњење:

  • са отвореним (...) отвара датотеку помоћу менаџера контекста.
  • цсв.ДицтРеадер(фајл) чита сваки ред као речник користећи заглавља као кључеве.
  • дата_лист.аппенд(ред) чува сваки речник у листи.

Писање у ЦСВ датотеку

Да бисмо писали у ЦСВ датотеку, прво отварамо ЦСВ датотеку у режиму ПИСАЊА. Датотечни објекат се конвертује у објекат цсв.вритер и одвијају се даље операције. Шифра и детаљно објашњење су дати у наставку.

Python
   import   csv   # Define header and data rows   fields   =   [  'Name'     'Branch'     'Year'     'CGPA'  ]   rows   =   [   [  'Nikhil'     'COE'     '2'     '9.0'  ]   [  'Sanchit'     'COE'     '2'     '9.1'  ]   [  'Aditya'     'IT'     '2'     '9.3'  ]   [  'Sagar'     'SE'     '1'     '9.5'  ]   [  'Prateek'     'MCE'     '3'     '7.8'  ]   [  'Sahil'     'EP'     '2'     '9.1'  ]   ]   filename   =   'university_records.csv'   with   open  (  filename     'w'  )   as   csvfile  :   csvwriter   =   csv  .  writer  (  csvfile  )   # Create writer object   csvwriter  .  writerow  (  fields  )   # Write header   csvwriter  .  writerows  (  rows  )   # Write multiple rows   

Објашњење:

  • поља дефинише заглавља колона, а редови садрже податке као листу листа.
  • са отвори (... 'в') отвара датотеку у режиму писања помоћу менаџера контекста.
  • цсв.вритер(цсвфиле) креира објекат за писање за писање у ЦСВ.
  • уписни ред(поља) уписује ред заглавља у датотеку.
  • редови (редови) уписује све редове података у ЦСВ одједном.

Писање речника у ЦСВ датотеку

Да бисте написали речник у ЦСВ датотеку, објекат датотеке (цсвфиле) се конвертује у објекат ДицтВритер. Детаљан пример са објашњењем и кодом је дат у наставку.

Python
   # importing the csv module   import   csv   # my data rows as dictionary objects   mydict   =   [{  'branch'  :   'COE'     'cgpa'  :   '9.0'     'name'  :   'Nikhil'     'year'  :   '2'  }   {  'branch'  :   'COE'     'cgpa'  :   '9.1'     'name'  :   'Sanchit'     'year'  :   '2'  }   {  'branch'  :   'IT'     'cgpa'  :   '9.3'     'name'  :   'Aditya'     'year'  :   '2'  }   {  'branch'  :   'SE'     'cgpa'  :   '9.5'     'name'  :   'Sagar'     'year'  :   '1'  }   {  'branch'  :   'MCE'     'cgpa'  :   '7.8'     'name'  :   'Prateek'     'year'  :   '3'  }   {  'branch'  :   'EP'     'cgpa'  :   '9.1'     'name'  :   'Sahil'     'year'  :   '2'  }]   # field names   fields   =   [  'name'     'branch'     'year'     'cgpa'  ]   # name of csv file   filename   =   'university_records.csv'   # writing to csv file   with   open  (  filename     'w'  )   as   csvfile  :   # creating a csv dict writer object   writer   =   csv  .  DictWriter  (  csvfile     fieldnames  =  fields  )   # writing headers (field names)   writer  .  writeheader  ()   # writing data rows   writer  .  writerows  (  mydict  )   

Излаз

Рад са цсв датотекама у Питхон-уцсв датотеку

Узмите у обзир да ЦСВ датотека изгледа овако у обичном тексту:

универзитетски рекордуниверзитетски рекорд

Објашњење:

  • са отвореним (...) безбедно отвара датотеку помоћу менаџера контекста.
  • цсв.ДицтВритер(... ) мапира кључеве речника у ЦСВ колоне.
  • вритехеадер() пише заглавља колона.
  • писци (мидицт) пише све речнике као ЦСВ редове.

Читање ЦСВ датотека са Пандама

Можемо читати а Питхон ЦСВ датотеке са Пандас користећи пандас.реад_цсв() функција. Ево примера:

Претпоставимо да имамо датотеку емплоиее.цсв и садржај унутар ње ће бити:

имедепартментбиртхдаи_монтх
Јохн СмитхХРЈул
Алице ЈохнсонИТОцтобер
Боб ВиллиамсФинанцеЈануари

У овом примеру пд.реад_цсв() чита ЦСВ датотеку у Пандас ДатаФраме. Добијени ДатаФраме може се користити за различите задатке манипулације и анализе података.

Python
   import   pandas   as   pd   # Read the CSV file into a DataFrame   df   =   pd  .  read_csv  (  'employees.csv'  )   # Display the DataFrame   print  (  df  )   

Излаз:

именско одељење рођендан_месец
0 Јохн Смитх ХР јул
1 Алице Јохнсон ИТ октобар
2 Боб Виллиамс Финанце јануар

Можемо приступити одређеним колонама филтрирати податке и изводити различите операције користећи пандас ДатаФраме функционалност. На пример, ако желимо да приступимо колони 'наме', можемо користити дф['наме'].

Python
   # Access the 'name' column   names   =   df  [  'name'  ]   print  (  names  )   

Излаз :

0 Џон Смит
1 Алис Џонсон
2 Боб Вилијамс
Име: име дтипе: објекат

Писање ЦСВ датотека са Пандас

Можемо користити Панде за писање ЦСВ датотека. То се може учинити коришћењем пд.ДатаФраме() функција. У овом примеру, Панде библиотека се користи за претварање листе речника (мидицт) у ДатаФраме који представља табеларне податке. ДатаФраме се затим уписује у Питхон ЦСВ датотеку под називом 'оутпут.цсв' користећи то_цсв метод креирајући структурирану и читљиву датотеку података за даљу анализу или дељење.

Python
   import   pandas   as   pd   mydict   =   [   {  'branch'  :   'COE'     'cgpa'  :   '9.0'     'name'  :   'Nikhil'     'year'  :   '2'  }   {  'branch'  :   'COE'     'cgpa'  :   '9.1'     'name'  :   'Sanchit'     'year'  :   '2'  }   {  'branch'  :   'IT'     'cgpa'  :   '9.3'     'name'  :   'Aditya'     'year'  :   '2'  }   {  'branch'  :   'SE'     'cgpa'  :   '9.5'     'name'  :   'Sagar'     'year'  :   '1'  }   {  'branch'  :   'MCE'     'cgpa'  :   '7.8'     'name'  :   'Prateek'     'year'  :   '3'  }   {  'branch'  :   'EP'     'cgpa'  :   '9.1'     'name'  :   'Sahil'     'year'  :   '2'  }   ]   # Create a DataFrame from the list of dictionaries   df   =   pd  .  DataFrame  (  mydict  )   # Write the DataFrame to a CSV file   df  .  to_csv  (  'output.csv'     index  =  False  )   

Излаз ЦСВ датотеке:

бранцхцгпанамеиеар
ЦОЕ9.0Никхил2
ЦОЕ9.1Санцхит2
ИТ9.3Адитиа2
СЕ9.5Сагар1
МЦЕ7.8Пратеек3
ЕП9.1Сахил2

Чување е-порука у ЦСВ датотекама

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

Python
   # importing the csv module   import   csv   # field names   fields   =   [  'Name'     'Email'  ]   # data rows of csv file   rows   =   [   [  'Nikhil'     '[email protected]'  ]   [  'Sanchit'     '[email protected]'  ]   [  'Aditya'     '[email protected]'  ]   [  'Sagar'     '[email protected]'  ]   [  'Prateek'     '[email protected]'  ]   [  'Sahil'     '[email protected]'  ]]   # name of csv file   filename   =   'email_records.csv'   # writing to csv file   with   open  (  filename     'w'  )   as   csvfile  :   # creating a csv writer object   csvwriter   =   csv  .  writer  (  csvfile  )   # writing the fields   csvwriter  .  writerow  (  fields  )   # writing the data rows   csvwriter  .  writerows  (  rows  )   

Излаз:

Имејлови у цсвИмејлови у цсв Креирај квиз