abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Nová verze

    Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | Komunita

    Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.

    Ladislav Hagara | Komentářů: 2
    včera 20:33 | IT novinky

    Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Komunita

    MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 0
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 10
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 184 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Skript vypisující duplicitní buňky v .ods

    5.8.2006 21:21 | Přečteno: 903× | Výběrový blog | poslední úprava: 5.8.2006 22:49

    Zdravím,
    níže je malý skriptík, užitečný například pro ty, co si do spreadsheetu vypisují slovíčka a stane se jim, že si některé slovíčko vypíší dvakrát. Projede zadaný soubor, načte obsah všech buněk a mají-li některé buňky identický obsah, vypíše jej + počet záznamů, takže je pak již jednoduché v OO dané buňky vyhledat a případně odstranit. Zřejmě by měl fungovat i při použití se starším .sxc. Je možné, že na to existuje i nějaké systémovější řešení, ale po lehkém googlení jsem nic nenašel a při vědomí toho, že .ods je v XML, jsem ani moc nepátral. Stačí uložit do souboru, chmod +x a jako parametr zadat název souboru, např.: ./soubor.py nemcina-slovicka.ods

    #!/usr/bin/env python
    import string,zipfile,sys
    def notods():
    	print 'soubor asi nebude od oo.o'
    	sys.exit(2)
    if not len(sys.argv)==2:
    	print 'chybne argumenty'
    	sys.exit(2)
    name=sys.argv[1]
    if not zipfile.is_zipfile(name):
    	notods()
    a=zipfile.ZipFile(name,'r')
    c='content.xml'
    if not c in a.namelist():notods()
    data=a.read(c)
    z='<text:p>'
    k='</text:p>'
    ki=0
    prevz=1
    prevk=1
    found=[]
    while ki!=-1:
    	zi=string.find(data,z,prevz)+len(z)
    	ki=string.find(data,k,prevz)
    	prevz=ki+len(k)
    	if not ki==-1:
    		found.append(data[zi:ki])
    dp={}
    for i in found:
    	if len(i)<3:
    		continue
    	if found.count(i)!=1:
    		if i.isdigit():continue
    		if not dp.has_key(i):
    			dp[i]=found.count(i)
    for i in dp:
    	print i,str(dp[i])+'x'
    

    update: Přeskakuje čísla a buňky, jejichž obsah je kratší než tři znaky (to je feature, nikoliv bug), dá se upravit zakomentováním if i.isdigit():continue, resp. if len(i)<3: continue        

    Hodnocení: 83 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    5.8.2006 21:24 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Skoro si říkám, že takový spredsheet by to mohl zvládnout sám… Ale dělat si iluze, že OO.o Calc něco zvládne, to už mě přešlo :-)
    Copak toho není dost?
    5.8.2006 21:28 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Asi umí, ale veškeré moje dovednosti s podobnými programy končí u zapsání dat a změny rozměrů buněk :-) Teď se (marně) snažím přijít na to, jak vyhledat buňku obsahující dnešní datum -x dní. Tentokrát u Pythonu skončit nemůžu, potřebuju to funkční na Pocket PC :-/
    5.8.2006 21:24 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Mimochodem, kdyby tu byl někdo přes RE, snažil jsem se původně toto ošklivé:
    while ki!=-1:
    	zi=string.find(data,z,prevz)+len(z)
    	ki=string.find(data,k,prevz)
    	prevz=ki+len(k)
    	if not ki==-1:
    		found.append(data[zi:ki])
    
    řešit reg. výrazy, ale nepodařilo se mi najít ten správný :-( Je třeba, aby matchoval <text:p>(cokoliv)</text:p>. Za nakopnutí bych byl vděčen :-)
    Vojta Drbohlav avatar 5.8.2006 22:04 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    co třeba re.findall("<text:p>(.+)</text:p>", a) ... jestli plácám blbosti tak si toho nevšímejte ;-)
    Vojta Drbohlav avatar 5.8.2006 22:14 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    spíš takhle re.findall("<text:p>(.+)</text:p>", data)
    5.8.2006 22:41 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Bohužel, také nic. Kouknu na to ještě jednou zítra, případný výsledek doplním.
    Marek Bernát avatar 6.8.2006 00:46 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Niečo takéto?
    import re
    rp = re.compile("<text:p>([^<>]*)</text:p>")
    rp.findall(data)
    
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    6.8.2006 10:33 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Tohle funguje, díky, nicméně jestli tomu dobře rozumím, tak matchuje všechno kromě < a > .. tedy kdyby oo.o nenahrazovalo tyto znaky, zřejmě by je to vynechalo. Ale ono nahrazuje, takže je to v zásadě jedno :-)
    Marek Bernát avatar 6.8.2006 12:30 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Aby som to trochu viac vysvetlil
    rp = re.compile("<text:p>([^<>]*)</text:p>")
    rp.findall(data)
    
    je ekvivalentné
    re.findall("<text:p>([^<>]*)</text:p>", data)
    
    ,ale ak potrebujete s tým regexom ešte pracovať, tak je výhodnejšie ho skompilovať len raz.

    K tým > a <: každý program, ktorý exportuje do XML ich samozrejme musí nahradzovať, ak má vytvoriť platný XML súbor. A ešte som predpokladal, že ten váš element text:p neobsahuje ďalšie elementy (ale nemusí to tak byť, netuším, aký formát má OO).

    Takže, aby som to zhrnul, neviem, prečo vám práve toto funguje a nie to predtým (re.findall…), lebo pre OO by mali byť tie programy ekvivaltné. Snáď len že máte nejakú staršiu verziu pythonu, ale to by musela byť veľmi stará, lebo AFAIK regexy sa naposledy poriadne menili niekedy v 1.5.2 a potom v 2.0 pridaním Unicode :-/
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    6.8.2006 12:36 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    lebo AFAIK regexy sa naposledy poriadne menili niekedy v 1.5.2 a potom v 2.0 pridaním Unicode :-/
    Do 2.4 byly přidány nějaké konstrukce, ale ty je zde stejně nepoužíváš ;-)
    When your hammer is C++, everything begins to look like a thumb.
    Marek Bernát avatar 6.8.2006 13:29 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Presne tak. AFAK boli pridané len flagy pre findall. Alebo ešte niečo iné?
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    6.8.2006 14:22 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Jojo, ten výraz chápu, spíš mi nedošlo, že díky tomu, že je to XML, tak to OO.o nutně nahrazuje a proto mě ani nenapadlo ten výraz napsat. Každopádně díky za vysvětlení.
    6.8.2006 12:42 lefti | skóre: 18 | blog: OneAndOnlyTrueBlog
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    A vite jak nahradit "jakykoliv znak krome" za "jakoukoliv sekvenci znaku krome"?
    Marek Bernát avatar 6.8.2006 00:49 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Hm, vlastne mi funguje aj toto vaše. Mal som to skúsiť, kým som dával nový post.

    Takže môj menovec má asi ešte nejaký iný problém :-)
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    Vojta Drbohlav avatar 6.8.2006 14:29 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    To moje funguje trošku jinak než to tvoje, alespoň mně ;-)
    5.8.2006 22:12 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Tak tohle:
    buňek
    si dokážu vysvětlit jen pokročilou hodinou ;-) Jinak pěkný skriptík.
    θηριον ειμι
    5.8.2006 22:32 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Já ani tou hodinou :-)
    alblaho avatar 6.8.2006 00:22 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Cože? Skriptík, který vypisuje mrtvé duše v ODS?-)
    Jardík avatar 6.8.2006 13:58 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Promiň, že se ptám, ale ty ten soubor pak nezavíráš?? Možná to teda udělá python sám při ukončení skriptu, ale je lepší ho zavírat.
    Věřím v jednoho Boha.
    6.8.2006 14:24 misterlister | skóre: 12 | blog: aiyyo
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Přesně tak, python to dělá sám a tak se tím v určitých případech netrápím - pokud otevírám soubory pouze pro čtení. Kdybych zapisoval, samozřejmě bych tam close() napsal, ale v tomto případě to považuji za zbytečné.
    Marek Bernát avatar 6.8.2006 14:30 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Prečo by to malo byť lepšie? Ak ten program za behu padne, tak AFAIK o uzavretie file descriptov sa postará kernel. Ak ten program nepadne, tak sa o to postará python. A z toho súboru sa len číta, takže sa nestratia žiadne dáta.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    Heron avatar 6.8.2006 14:43 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Minimálně to patří ke slušnosti a dobrému stylu programování - zavřít každý soubor a síťové sockety, uvolnit veškerou vyžádanou pamět a u OOP zničit vytvořené objekty (pokud to jazyk umožňuje). Zabráníte si tak potížím při rozšířením programu - za půl roku budete těžce hledat, proč se ta data neukládájí.
    6.8.2006 14:56 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Ba jemnosti, ta dnešní programátorská mládež jen prasí. Kde jsou ty zlaté časy, kdy se všechno psalo do čtyř sloupečků: v prvním labely, v druhém instrukce, ve třetím parametry a ve čtvrtém komentář. Dnes je to samý "to za mě udělá OS" a ze zdrojáků je blivno :-D :-D :-D
    θηριον ειμι
    6.8.2006 14:59 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    No jo. Je fakt, že vynechat v desetiřádkovém skriptu smetí na dalších pět řádek, za to by se mělo střílet :-)
    Copak toho není dost?
    Marek Bernát avatar 6.8.2006 16:21 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Príliš zovšeobecňujete. Ak píšem v asm, tak používam iné idiómy, ako v C++, iné ako v pythone a iné ako v lispe.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    7.8.2006 01:53 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Proto jsem tam napsal ty tri smajliky ;-) Samozrejme, ze dobry programatorsky styl je nutny nejen pro ty, kteri to po mne budou cist, ale i pro autora samotneho a ze styl zapisu kodu se odviji od syntaxe jazyka, ale to neznamena, ze si nemuzeme nostalgicky zavzpominat na uhledne zdrojaky assembleru :-D
    θηριον ειμι
    Marek Bernát avatar 7.8.2006 10:06 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Tri smajlíky sú málo, ak chcete urážať dnešnú programátorskú mládež. Tá na PHP nedá dopustiť :-)

    Náhodou, videl som už dosť assembleru, ktorý sa dá nazvať všeličím, ale určite nie úhľadným. Ale o to je väčšia zábava to dešifrovať. Ak to teda robíte zo zábavy a nie z pracovnej náplne :-)

    Inak, aj v dnešnej dobe sa dá dosť assembleru vidieť vo vertex a fragment programoch. Shading jazyky ho síce už vytláčajú, ale časy assembleru určite nie sú ešte zabudnuté :-)
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    7.8.2006 19:20 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    No to já zase programátorskou mládež klidně urazím, protože se do ní zatím počítám taky (pravda 21 let taky už není tak úplně mládí ;-), ale na monitor ještě vidím). A na PHP nedám dopustit v žádném případě ;-). V PHP5 už máme konečně pěkně řešené objekty, na webové aplikace je to balada :-D. Ale kód PHP skriptů musí být samozřejmě také vzorně upraven, jako zdrojáky v céčku.

    A psaní vertex/fragment programů v assembleru mi bohužel uteklo minulý semestr. V přednášce o OpenGL už nezbyl čas :-/ Jo, kde jsou ty časy, kdy jsem si psal zdrojáky v QBasicu do bločku, abych to pak mohl ve škole v hodině informatiky otestovat na jednom ze čtyř tehdy nejlepších strojů, co škola vlastnila: pentium, tuším něco kolem 100MHz...
    θηριον ειμι
    Marek Bernát avatar 6.8.2006 16:17 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Dobrý štýl programovania? Nedajte sa vysmiať. Dobrý štýl programovanie je
    (defun save-db (filename)
      (with-open-file (out filename
    		       :direction :output
    		       :if-exists :supersede)
        ; sprav nieco so suborom out))
    
    Alebo inak povedané, poriadny jazyk, kde nič ako zatváranie súborov nemusíte robiť. Rovnaká vec má pribudúť aj v pythone 2.5.

    To, čo vy nazývate dobrým štýlom, sú idiómy nižších jazykov, ako je python a rozhodne ich netreba dogmaticky pchať všade.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    6.8.2006 18:59 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Rovnaká vec má pribudúť aj v pythone 2.5.
    Huráá, Python bude mít makra! :-)
    Marek Bernát avatar 6.8.2006 19:45 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    :-)

    Len tak na okraj, pribudne konštrukcia with, využívajúca nové vlastnosti generátorov a bude sa dať ľubovoľnému objektu povedať, že čo s ním má with spraviť. Teda napríklad súbor bude vedieť, že po skončení bloku sa má zavrieť, thread bude vedieť, že na with bloku je lock, apod. Pekné ale je, že kým v lispe napísanie vlastného with trvá 5 minút a dá sa to už 4O rokov, tak v pythone treba navrhnúť PEP, teba diskutovať, schváliť a po pár mesiacoch(až rokoch) je nová konštrukcia :-) Ale stále lepšie ako Java s JSR, kde užitočné veci pribúdajú ešte pomalšie, nehovoriac o tom, že to nie je prístupné komunite :-(
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    6.8.2006 22:41 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Taky jsem to myslel ironicky... ;-) Škoda každé zbytečné fíčury navíc. (Toto není myšleno ironicky... ;-))
    Marek Bernát avatar 7.8.2006 00:04 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: Skript vypisující duplicitní buňky v .ods
    Myslel som si, ale bolo to pre prípadných náhodných okoločítajúcich.

    To, čo ste povedali vy, sa týka skôr Perlu, ak už chceme vybrať jazyk, ktorý vznikol zliepaním fičúr.

    A na opačnej strane stoja akademické jazyky s minimálnym feature-set, kde sa prakticky nedá programovať.

    Ja som oveľa radšej, že python ide zlatou strednou cestou a má generátory, dekorátory, množiny a ďalšie srandičky, ktoré by tam nemuseli byť. Podľa mňa si je Guido veľmi dobre vedomý toho, že jazyk, ktorý nemá makrá, sa dá vylepšovať len za cenu toho, že bude menej čistý a snaží sa pridávať len veci, ktoré sú dosť abstraktné na použitie v mnohých prípadoch (ako napríklad to with), takže sa ich oplatí pridať. A PEPy komentujú skúsení hackeri, takže nemám o budúcnosť pythonu obavy.
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.