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í
×
    včera 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

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

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    včera 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 2
    včera 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 26
    včera 09:55 | IT novinky

    Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.

    Ladislav Hagara | Komentářů: 3
    včera 09:33 | IT novinky

    Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.

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

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    29.4. 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    29.4. 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    29.4. 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 2
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 497 hlasů
     Komentářů: 19, poslední včera 11:32
    Rozcestník

    Vložit další komentář
    13.2.2007 00:54 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Je to divný, ale ten maketrans s češtinou mi s UTF-16 funguje. ;-) Zjevně i Pythonu nějaký ten krůček do úplné unicodizace chybí. Za modul unicodedata budiž ovšem had blahoslaven a veleben. :-)
    13.2.2007 10:48 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Jestli mohu doporučit, tak funkcím maketrans/translate je dobré se vyhnout, pokud si opravdu nejste naprosto jistí, že je opravdu potřebujete. Tyto funkce pracují s jednotlivými bajty (nikoli znaky), což se moc nehodí při práci s utf-8 a při práci s textem obecně. Jestliže ten maketrans s češtinou fungoval, byla to náhoda. A pokud nefungoval, nebyla to chyba pythonu ;-)

    Pro překódování řetězce odněkud někam je lepší použít encode/recode. Pro "hádání" kódování slouží Yetiho enca se svým pythonovským modulem pyenca. Pro odstranění diakritiky lze využít výše zmíněný modul unicodedata.

    Jo a díky za pěkný článek!
    13.2.2007 11:57 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Takhle nějak?
    def deaccent(unistr):
        return "".join(aChar 
                       for aChar in unicodedata.normalize("NFD", unistr) 
                       if "COMBINING" not in unicodedata.name(aChar))
    
    13.2.2007 12:01 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Á, odpovím si sám:
    def deaccent(unistr):
        return "".join(aChar 
                       for aChar in unicodedata.normalize("NFD", unistr) 
                       if not unicodedata.combining(aChar))
    bude očividně mnohem rychlejší. :-) Budu si ten modul muset prostudovat. :-D
    13.2.2007 13:28 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Vida, díky - tvůj postup naprosto precizně odstraní akcenty :-) Zkusil jsem si s tím taky pohrát a dostal jsem se do svízele s tím, že vlastně nechápu, k čemu se to vlastně používá. Má to smysl možná tehdy, když musí být výsledkem ascii řetězec, a pak pouhé odstranění akcentů nestačí. Zde je ukázka několika možností:
    #!/usr/bin/env python
    #coding: utf-8
    
    import unicodedata
    
    def deaccent(unistr):
        return "".join(aChar 
                       for aChar in unicodedata.normalize("NFD", unistr) 
                       if not unicodedata.combining(aChar))
                       
    old_cz = u'áÁčČďĎěĚéÉíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ'
    old_fr = u'ôœùûüÿàâçéèêëïîÔŒÙÛÜŸÀÂÇÉÈÊËÏÎ'
    old = old_cz + old_fr
    print old
    print deaccent(old)
    print deaccent(old).encode('ascii', 'replace')
    print deaccent(old).encode('ascii', 'ignore')
    print unicodedata.normalize('NFKD', old).encode('ascii', 'ignore')
    print unicodedata.normalize('NFKD', old).encode('ascii', 'replace')
    
    Výsledek je toto:
    áÁčČďĎěĚéÉíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽôœùûüÿàâçéèêëïîÔŒÙÛÜŸÀÂÇÉÈÊËÏÎ
    aAcCdDeEeEiInNoOrRsStTuUuUyYzZoœuuuyaaceeeeiiOŒUUUYAACEEEEII
    aAcCdDeEeEiInNoOrRsStTuUuUyYzZo?uuuyaaceeeeiiO?UUUYAACEEEEII
    aAcCdDeEeEiInNoOrRsStTuUuUyYzZouuuyaaceeeeiiOUUUYAACEEEEII
    aAcCdDeEeEiInNoOrRsStTuUuUyYzZouuuyaaceeeeiiOUUUYAACEEEEII
    a?A?c?C?d?D?e?E?e?E?i?I?n?N?o?O?r?R?s?S?t?T?u?U?u?U?y?Y?z?Z?
     o??u?u?u?y?a?a?c?e?e?e?e?i?i?O??U?U?U?Y?A?A?C?E?E?E?E?I?I?
    
    Jak je vidět, s češtinou celkem není problém, a proto pro ni lze na netu najít tolik více či méně korektních postupů. Ale zkusil jsem francouzštinu a pro ascii reprezentaci by to ještě chtělo spravit ty ligatury.
    13.2.2007 13:41 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Tak s těmi ligaturami bacha, ono v některých jazycích je to plnohodnotné písmeno, takže jakékoli odstraňování čehokoliv je locale-dependent. ;-)
    13.2.2007 14:47 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Aha, máš pravdu:
    >>> import unicodedata
    >>> unicodedata.name(u'Œ')
    'LATIN CAPITAL LIGATURE OE'
    >>> unicodedata.name(u'Æ')
    'LATIN CAPITAL LETTER AE'
    
    Konverze do ASCII (nebo spíš latin-1?) by IMHO locale-dependent být nemusela. Ale nejsem si jistý. Za přečtení stojí tohleto: http://effbot.org/zone/unicode-convert.htm Uf. Radši akcenty nikdy neodstraňovat.
    13.2.2007 15:21 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Mnojo, jazykověda je ještě lepší zábava než linuxový kernel. :-D ;-)
    13.2.2007 15:43 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Hehe :-) A když už jsme u těch akademických debat, zdá se, že pro převod do ASCII se při normalizaci víc hodí parametr 'NFKD' (místo 'NFD'), přestože ničí část informace. Například:
    >>> ctvrtka = u'\N{VULGAR FRACTION ONE QUARTER}'
    >>> print unicodedata.normalize('NFKD', ctvrtka)
    1⁄4
    >>> print unicodedata.normalize('NFD', ctvrtka)
    ¼
    
    Bohužel, někteří často pomocí skriptů převádějí do ASCII názvy souborů a adresářů. Takže když bude v názvu jedna čtvrtina, vyrobí se z toho nadbytečné lomítko, které v cestě nadělá paseku. No teoreticky by se to stát mohlo, no ne? :-)
    13.2.2007 15:47 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 7 (řetězce 3)
    Diskuse se začíná nebezpečně stáčet směrem k založení nového projektu na Sourceforgi. :-D

    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.