Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Sroorey 04 Června 2016, 12:10:11

Název: Python - jak číst v řádku jed. slova
Přispěvatel: Sroorey 04 Června 2016, 12:10:11
Zdravím,

potřeboval bych pomoct se selekcí jednotlivých slov v řádku textového dokumentu a uložit případně do nějakého listu, prostě tak abych s nimi mohlo dále pracovat.

Mám záznam v textovém dokumentu o aktivitách na sdíleném disku. Ten chci přepsat do nějaké kompetentní DB (SQLite). V bashi jsem provedl určitou před-úpravu onoho záznamu, vyškrtal nechtěné řádky  a nějaké znaky, které jsem považoval za problém. Ve výsledku je z toho tohle (ukázka):

Kód: [Vybrat]
Jun  4 10:19:24 cs30 smbd_audit: alicia 10.0.0.35 b50-70 nas connect ok nas
Jun  4 10:19:31 cs30 smbd_audit: alicia 10.0.0.35 b50-70 nas open ok r pi's files/dokument 01.pdf
Jun  4 10:19:40 cs30 smbd_audit: alicia 10.0.0.35 b50-70 nas disconnect ok nas

Problém také vidím v mezerách v názvu prostředím řádku, kde na konci je přístup do dokument 01.pdf ve slože pi's files.  Tento blok by totiž měl být v jedné buňce databáze.
Název: Re:Python - jak číst v řádku jed. slova
Přispěvatel: Yontalcar 07 Června 2016, 09:10:59
Použij regulární výrazy (https://docs.python.org/3.4/library/re.html (https://docs.python.org/3.4/library/re.html),http://www.root.cz/serialy/regularni-vyrazy/ (http://www.root.cz/serialy/regularni-vyrazy/))
Problém také vidím v mezerách v názvu prostředím řádku, kde na konci je přístup do dokument 01.pdf ve slože pi's files.  Tento blok by totiž měl být v jedné buňce databáze.
Pokud tam není více polí o proměnlivém počtu slov, mělo by to být v poho
Název: Re:Python - jak číst v řádku jed. slova
Přispěvatel: ntz_reloaded 07 Června 2016, 12:31:50
"zer" to odpredu, eg ve splitu podle \s+

[Jun  4 10:19:31] [cs30 smbd_audit: alicia 10.0.0.35 b50-70] [nas open ok r] pi's files/dokument 01.pdf

eg datum, control, akce, zbytek
Název: Re:Python - jak číst v řádku jed. slova
Přispěvatel: GdH 07 Června 2016, 13:10:01
Myslím, že už to vyřešil přes maxsplit parametr, který sehnal na abíčku.