CSV ātrapskate un ņiprmanipulācijas
Šis ieraksts ir tehnisks. Tas var būt par datoriem, programmēšanu, lodēšanu un tamlīdzīgām ne pārāk populārām lietām. Ja tevi šāds saturs neinteresē, droši vari to nelasīt.
Prior scriptum. Es apsolu, ka nākamais raksts nebūs tehnisks. Goč pendel!
Tev ir kaudze ar CSV failiem, kurus nedaudz jāpabaksta, lai tie izspļautu vajadzīgo. Normāli cilvēki lādē CSV Ekscelī un kapā. Bet ko darīt mums - nenormālajiem?
Viens variants - Python un Pandas. Atvāžam vaļā repl vai notebook un bakstam savus CSV. Mīnuss - ja nejēdz python vai pandas, tad var būt ilgi un dīvaini.
Otrs variants - ielādē iekš sqlite :memory: un baksties tur, ne? Bet atkal ceļā stājas visādi CSV failu formāti, eksceļa izpratne par comma separated values, izrādās, patiesībā ir seimcolon separated values, utt.
Un pie reizes arī atduries pret to, cik patiesībā sqlite3, lai arī ir lielisks, tomēr neder tādam 'fiksi izdarīsim, smuki paskatīsimies un iesim pa mājām'.
Bonuss - mūsdienās sqlite3 ir visur. Ja nav, tad ar vienu komandu būs.
Bet man ir vēl viens variants. Duckdb. Gluži kā sqlite, arī duckdb ir ātra datubāzes implementācija, kur datubāze ir fails. Tiesa, ar citiem akcentiem. Duckdb galvenais uzsvars ir uz OLAP sadaļu - ātras agregācijas, milzīgi datu apjomi, utt. Kamēr sqlite koncentrējas uz ātru OLTP sadaļu - ieraksti nelieli, datu ne īpaši daudz, bet viss lasās un rakstās ātri.
Es gan nespiežu jūs lietot pašu duckdb. Lai gan arī neturu. Taču nometiet sev kaut kur pa rokai - tas ir viens binārs fails, kurš var noderēt visnegaidītākajā brīdī.
Šķiet, ka katram sevi cienošam Rust, Go vai kādas citas valodas adeptam dzīvē ir jāuzraksta vismaz viena aplikācija, kuru jau ir tik daudz, ka visiem ir nedaudz jāsaspiežas. Un CSV manipulācijas rīki nav izņēmums.
- visidata - šķiet, ka varētu pat nosaukt par eksceli terminālī... I mean - kurš gan negrib pivotus taisīt konsolē?!
- csvlens, tabview - CSV skatīkļi
- csvkit, csvtk un tsv-utils - CSV manipulācija ar dažādiem komandrindas rīkiem (pēdējais gan ir TSV).
- tv, csview - CSV daiļattēlotāji, lai gan manis iecienītais batcat dara tieši to un vēl daudz ko.
- q un csvq - iespēja uzrunāt CSV ar SQL vaicājumiem (nepilnīga)
Starp citu, nesaistīti ar CSV.
Pateicoties TUI (textual user interface - kā senos DOS laikos) renesansei, mums ir arī citas diženas iespējas saskarņot ar datubāzēm un visu citu, ko vien var iedomāties tavs netiklais prāts! Ar nosaukumiem tādiem, ka pēc pāris mēnešiem izmisīgi domāsi - kā to mazo mēslu, kurš man tagad lieti noderētu, īsti sauca?! Starp citu, tieši tas ir iemesls, kāpēc ir uzrakstīts šis bloga ieraksts - pats varēšu vēsi atrast.
Viens no tādiem (ne īpaši maziem, godīgi sakot) mēsliem ir Harlequin. Konsolē lodziņi šmodziņi. Diezgan jauks rīks. Netipiski mūsdienām - rakstīts iekš python. Lai gan ne īpaši dīvaini, jo textual bibliotēka ir vislielākais feature creep vispopulārākā TUI rakstīšanai.
TQ
18. februārī, plkst. 20:38
Pārsvarā sanāk izmantot windows, tāpēc powershell - https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-7.4