Читање и писање ЦСВ датотека у Питхону помоћу ЦСВ модула & амп; Панде

Преглед садржаја:

Anonim

Шта је ЦСВ датотека?

ЦСВ датотека је врста датотеке са обичним текстом која користи специфично структурирање за сређивање табеларних података. ЦСВ је уобичајени формат за размену података јер је компактан, једноставан и општи. Многе мрежне услуге омогућавају његовим корисницима извоз табеларних података са веб локације у ЦСВ датотеку. Датотеке ЦСВ-а отвориће се у програму Екцел, а готово све базе података имају алат који омогућава увоз из ЦСВ датотеке. Стандардни формат је дефинисан подацима редова и колона. Штавише, сваки ред се завршава новом линијом да би започео следећи ред. Такође у оквиру реда, свака колона је одвојена зарезом.

У овом упутству ћете научити:

  • Шта је ЦСВ датотека?
  • ЦСВ датотека узорка.
  • Питхон ЦСВ модул
  • Функције ЦСВ модула
  • Читање ЦСВ датотека
  • Читање као речник
  • Писање у ЦСВ датотеке
  • Читање ЦСВ датотека са Пандама
  • Писање у ЦСВ датотеке са Пандама

ЦСВ датотека узорка.

Подаци у облику табела називају се и ЦСВ (вредности одвојене зарезом) - дословно „вредности одвојене зарезом“. Ово је текстуални формат намењен презентацији табеларних података. Сваки ред датотеке је један ред табеле. Вредности појединих колона одвојене су знаком за раздвајање - зарезом (,), тачком и зарезом (;) или другим симболом. Питхон може лако читати и обрађивати ЦСВ.

Размотрите следећу табелу

Подаци из табеле

Програмски језик Дизајнирао Појавио се Продужење
Питхон Гуидо ван Россум 1991 .пи
Јава Јамес Гослинг 1995 .јава
Ц ++ Бјарне Строуструп 1983 .цпп

Ову табелу можете представити у ЦСВ-у на следећи начин.

ЦСВ подаци

Програмски језик, дизајнирао, појавио се, проширење

Питхон, Гуидо ван Россум, 1991, .пи

Јава, Јамес Гослинг, 1995, .јава

Ц ++, Бјарне Строуструп, 1983, .цпп

Као што видите, сваки ред је нови ред, а свака колона је одвојена зарезом. Ово је пример како изгледа ЦСВ датотека.

Преузмите ЦСВ податке

Питхон ЦСВ модул

Питхон пружа ЦСВ модул за обраду ЦСВ датотека. Да бисте читали / писали податке, потребно је да прелистате редове ЦСВ-а. Морате користити методу поделе да бисте добили податке из наведених колона.

Функције ЦСВ модула

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

  • цсв.фиелд_сизе_лимит - враћа максималну величину поља
  • цсв.гет_диалецт - добити дијалект који је повезан са именом
  • цсв.лист_диалецтс - прикажи све регистроване дијалекте
  • цсв.реадер - чита податке из ЦСВ датотеке
  • цсв.регистер_диалецт - повезивање дијалекта са именом
  • цсв.вритер - уписати податке у цсв датотеку
  • цсв.унрегистер_диалецт - избришите дијалект повезан са именом регистар дијалеката
  • цсв.КУОТЕ_АЛЛ - Цитирајте све, без обзира на врсту.
  • цсв.КУОТЕ_МИНИМАЛ - Поља са посебним знаковима
  • цсв.КУОТЕ_НОННУМЕРИЦ - Наведите сва поља која нису бројевна вредност
  • цсв.КУОТЕ_НОНЕ - Не цитирајте ништа у излазу

У овом упутству фокусираћемо се само на функције читача и писања које вам омогућавају да уређујете, мењате и манипулишете подацима у ЦСВ датотеци.

Како прочитати ЦСВ датотеку

Да бисте читали податке из ЦСВ датотека, морате користити функцију читача да бисте генерисали објекат читача.

Функција читача је развијена да узима сваки ред датотеке и прави листу свих колона. Затим морате одабрати колону за коју желите податке променљиве.

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

#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)

Када извршите горњи програм, излаз ће бити:

['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']

Како читати ЦСВ као речник

Такође можете да користите ДицтРеадер за читање ЦСВ датотека. Резултати се тумаче као речник где је заглавни ред кључ, а остали редови вредности.

Размотрите следећи код

#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)

Резултат овог кода је:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

А овај начин читања података из ЦСВ датотеке је много лакши него ранији метод. Међутим, ово није најбољи начин за читање података.

Како написати ЦСВ датотеку

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

Размотрите следећи пример. Податке записујемо у датотеку „вритеДата.цсв“ где је граничник апостроф.

#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Резултат у цсв датотеци је:

Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp

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

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

Морате инсталирати библиотеку панда са наредбом <цоде> пип инсталл пандас . У Виндовсима ћете извршити ову команду у командној линији док сте у Линуку на терминалу.

Читање ЦСВ-а у панду ДатаФраме је врло брзо и једноставно:

#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)

Резултат:

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp 

Веома корисна библиотека. У само три реда кода добијате исти резултат као и раније. Панде знају да је први ред ЦСВ-а садржавао имена колона и користиће их аутоматски.

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

Писање у ЦСВ датотеку са Пандасом једноставно је као и читање. Овде можете у то да убедите. Прво морате створити ДатаФраме на основу следећег кода.

from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)

Ево резултата

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp

А ЦСВ датотека се креира на наведеном месту.

Закључак

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

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

Пандас је одлична алтернатива за читање ЦСВ датотека.

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