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 05:33 | IT novinky

    Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.

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

    Před konferencí Next.js Conf 2025 bylo oznámeno vydání nové verze 16 open source frameworku Next.js (Wikipedie) pro psaní webových aplikací v Reactu. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Komunita

    Sovereign Tech Fund oznámil finanční podporu následujících open source projektů: Scala, SDCC, Let's Encrypt, Servo, chatmail, Drupal, Fedify, openprinting, PHP, Apache Arrow, OpenSSL, R Project, Open Web Docs, conda, systemd a phpseclib.

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

    Bylo vydáno OpenBSD 7.8. S předběžnou podporou Raspberry Pi 5. Opět bez písničky.

    Ladislav Hagara | Komentářů: 0
    včera 05:44 | Nová verze Ladislav Hagara | Komentářů: 2
    včera 05:22 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.

    Ladislav Hagara | Komentářů: 3
    21.10. 23:15 | Nová verze

    AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.

    Max | Komentářů: 2
    21.10. 22:33 | IT novinky

    Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.

    Ladislav Hagara | Komentářů: 0
    21.10. 14:33 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 3
    21.10. 13:55 | IT novinky

    Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.

    Ladislav Hagara | Komentářů: 10
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (20%)
     (20%)
     (22%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 256 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    29.3.2016 18:31 xxxxxx | skóre: 23
    Rozbalit Rozbalit vše Re: Python: jak spravne extrahovat nazvy souboru z adresare?
    Ten kus LyX kódu bych hodil do jiného souboru, v kódu tohle obvykle není pěkné. Jestli tomu dobře rozumím, máš šablonu pro LyX, do které chceš nasázet hodnoty. To bych použil rovnou modul Jinja2.
    import glob
    import os
    from jinja2 import Environment
    
    # Načtení šablony do prom. tmp
    env = Environment()
    
    with open('cesta/k/templatu.lyx', 'r', encoding='utf8') as fread:
        tmp = env.from_string(fread.read())
    
    # dict s hodnotami
    content = {}
    
    # Pak tady budeš všechno možné, třeba to prolezení PDF souborů
    # Dejme tomu, že magicka_funkce vrací list s názvy PDF
    def magicka_funkce(path):
        files = glob.glob(path + '*.pdf')
    
        out = []
    
        # Ošklivé, ale takhle nějak
        for fl in files:
            out.append({'cesta': fl,
                        'nazev_souboru': os.path.basename(fl),
                        'nazev_souboru_bez_pripony': os.path.splitext(os.path.basename(fl))[0]})
    
        return out
    
    seznam_souboru = magicka_funkce('cesta/')
    content['seznam_souboru'] = seznam_souboru
    
    # Nakonec ten seznam pošleš šabloně
    vygenerovany_dokument_jako_string = tmp.render(content)
    
    with open('vysledny_soubor.lyx', 'r', encoding='utf8') as fwrite:
        fwrite.write(vygenerovany_dokument_jako_string)
    
    No a v té šabloně budeš mít už syntaxi Jinja:
    {% for pdf in seznam_souboru %}
    \begin_layout Standard
    \begin_inset CommandInset label
    LatexCommand label
    name "{{ pdf.nazev_souboru_bez_pripony }}"
    
    \end_inset
    
    
    \end_layout
    
    \begin_layout Standard
    \begin_inset External
    	template PDFPages
    	filename {pdf.nazev_souboru:1}
    	extra LaTeX "pages=-, pagecommand={\thispagestyle{fancy}}, addtotoc={1,section,1,{{ pdf.nazev_souboru_bez_pripony }}},{{ pdf.nazev_souboru_bez_pripony }}}"
    	scale 80
    
    \end_inset
    
    
    \end_layout
    {% endfor %}
    
    Jakmile generuju soubory, tak takhle. Než jsem se dostal k Jinja2, tak jsem to dělal stejně, jako to máš v otázce, tj. postupně zapisovat do souboru po kouskách. Ale tohle je o poznání jednodušší a čistší. Hlavně to podporuje cykly i podmínky (viz první řádek templatu).

    Kromě Jinja2 má python ve standardní knihovně string.Template. Což je něco podobného, ale spíš jen formou search & replace.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.