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 01:44 | Komunita

    Na YouTube byly publikovány videozáznamy přednášek a na Flickru fotografie z konference EuroPython 2026.

    Ladislav Hagara | Komentářů: 0
    včera 18:11 | Nová verze

    Byl vydán Debian 13.7, tj. sedmá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Zajímavý článek

    Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě

    … více »
    Ladislav Hagara | Komentářů: 19
    11.9. 18:00 | Bezpečnostní upozornění

    Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.

    Ladislav Hagara | Komentářů: 5
    11.9. 14:33 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.

    Ladislav Hagara | Komentářů: 0
    11.9. 11:44 | Nová verze

    Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    11.9. 11:33 | Nová verze

    Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.9. 04:33 | Komunita

    Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.

    Ladislav Hagara | Komentářů: 11
    11.9. 04:22 | Komunita

    V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.

    Ladislav Hagara | Komentářů: 0
    10.9. 18:33 | Nová verze

    Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2658 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: jak na efektivni vstup v pythonu?

    13.12.2005 12:08 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    jak na efektivni vstup v pythonu?
    Přečteno: 279×

    zdravím, v pythonu začínám a nemám takový přehled o jazyce a knihovnách

    Řešil jsem problém s parsováním textového vstupu (text oddělený rourama, ale na každém řádku jiný počet sloupců a také některé položky obsahovaly znak '\r') - takže celkem legrace

    Jeden "blok" (nebudu říkat řádek, protože to není prvada) vypadá třeba takhle:

    |START|ahoj |  text|zase
    nejaky   text
       ktery je docela
     dlouhy| polozka|STOP|
    

    základní smyčka programu načítá tento jeden blok (jediné co vím, že začíná přesně |START| a končí přesně |STOP|) pomocí sys.stdin.read(1). jednotlivé položky ukládám do pole, které po přečtení jednoho bloku zpracuji a vyhodím na výstup

    dneska sem ale zjistil, ze na vstupu budou asi 4GB (pri soucasnem vykonu by to trvalo asi 8h), takze: jak zefektivnit vstup? (docela by to chtelo :-) )/p>

    never use rm after eight

    Odpovědi

    13.12.2005 12:37 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: jak na efektivni vstup v pythonu?
    jednotlivé položky ukládám do pole, které po přečtení jednoho bloku zpracuji a vyhodím na výstup
    Otázka zní jinak, co to znamená zpracuje? Je možné zpracovat jeden token a ihned ho vypsat, nebo je potřeba mít celý soubor načtený v poli a až potom zpracovávat? Je možné třeba pustit čtení v jednom vláknu a zpracovávání (po načtení nějakého minimálního vstupu) ve druhém?

    BTW: pokud je výkon kritický a budeš zpracovávat 4GB soubory, poohlédl bych se spíše po C.
    When your hammer is C++, everything begins to look like a thumb.
    13.12.2005 13:02 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    Rozbalit Rozbalit vše Re: jak na efektivni vstup v pythonu?
    jak sem psal:
    které po přečtení jednoho bloku zpracuji a vyhodím na výstup
    asi sem se zeptal spatne: jak moc je v pythonu efektivni sys.stdin.read(1) ?

    ja jsem spise javista... takze do Ccka bych se vubec nehrnul :-) - radeji mam jazyky vyssi urovne
    never use rm after eight
    13.12.2005 15:20 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: jak na efektivni vstup v pythonu?
    Jde mi o to, zda se do pole blok (4GB blok?) neukládá zbytečně a nedá se hned poslat na výstup. Mě z tvého popisu napadlo, že kód většinu času tráví ukládáním po paměti a tím zpracováváním - chtělo by to profilovat.

    Jinak efektivitu sys.stdin.read(1) si můžeš snadno změřit (a porovnat třeba s Perlem, Javou, ...) přiznám se, že by mě výsledky zajímaly.
    $ seq 1000000 > milion.txt
    $cat read
    #!/usr/bin/python
    
    import sys
    while (sys.stdin.read(1)):
      pass
    
    $ time cat milion.txt | ./read
    
    real    0m13.338s
    user    0m13.233s
    sys     0m0.068s
    
    When your hammer is C++, everything begins to look like a thumb.
    13.12.2005 15:50 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    Rozbalit Rozbalit vše Re: jak na efektivni vstup v pythonu?
    dělám chybu a vím o tom:

    základní pravidlo optimalizace: neoptimalizovat... a asi u toho zůstanu... bez profilovacího nástroje stejne nevim kde mi to zere cas, takze...

    spise sem cekal jestli se nekdo neozve treba takhle: no fuj, nacitat to po znacich, to je ale prasarna - nikdo se takhle neozval, tudiz povazuji tuhle metodu za beznou (at je nebo neni efektivni) - treba v jave se to realizuje pomoci BufferedReader a ten zajistuje efektivnejsi vyuziti zarizeni
    never use rm after eight
    13.12.2005 13:04 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    Rozbalit Rozbalit vše Re: jak na efektivni vstup v pythonu?
    jinak v jave s vlaknama bezne delam, ale -- jak sem psal -- v pythonu zacinam, tak se do vlaken asi pustet nebudu (na srozumitelnstoi programu to asi moc neprida), a asi to ani nema v tomhle pripade cenu
    never use rm after eight
    13.12.2005 19:34 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: jak na efektivni vstup v pythonu?
    Jestliže jsi vše pečlivě napsal v Pythonu, funguje to, je to pomalé a nedá se s tím nic dělat, tak je jediná možnost naprogramovat to v C a udělat binding do Pythonu (jestli chceš zůstat u jazyka vyšší úrovně).

    Python je přímo na tohle stavěný. Velmi pohodlně se v něm píše, ale kritické části lze napsat v C, přičemž "python C API" je poměrně jednoduché. Tím spojuje výhody obou přístupů.

    I kdyby byl Python stokrát pomalejší než C, tak při osmihodinovém běhu Pythonovského programu to představuje pět minut v C. Myslím, že něco je špatně bez ohledu na výběr jazyka ...

    Založit nové vláknoNahoru

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

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