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 02:11 | Komunita

    Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.

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

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

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

    D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Nová verze

    Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Upozornění

    Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.

    Ladislav Hagara | Komentářů: 7
    včera 10:11 | IT novinky

    Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.

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

    Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.

    Ladislav Hagara | Komentářů: 0
    včera 00:22 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    10.3. 12:11 | IT novinky

    Open source router Turris Omnia NG Wired je v prodeji. Jedná se o Turris Omnia NG bez Wi-Fi. Je připraven pro zamontování do racku.

    Ladislav Hagara | Komentářů: 6
    10.3. 11:44 | Pozvánky

    Sníh roztál a roztávají i bastlíři. Žene se na nás celá řada konferencí a seminářů technického rázu. Zajímá vás, jaké? Pak se připojte k 60. Virtuální Bastlírně, tedy k veřejné diskuzi bastlířů, techniků, učitelů i vědců. Jako vždy přijde na přetřes spousta novinek ze světa hardwaru, softwaru i bizáru. Na začátek lze očekávat hardwarová témata, tedy například nový KiCAD 10, nové akcelerátory LLM s nízkou spotřebou, nejvíce fosforeskující

    … více »
    bkralik | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (6%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (2%)
     (13%)
     (25%)
    Celkem 1053 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Načtení seznamu ze souboru v Pythonu

    11.5.2015 22:06 Dědek
    Načtení seznamu ze souboru v Pythonu
    Přečteno: 723×
    Ahoj, jak můžu nahradit tento kousek kódu
    #!/usr/bin/python
    def Seznam():
        items = [1, 2, 3, 4, 5, 6, 7, 8]
    za něco, co načte seznam ze souboru ale bude se tvářit ten seznam jako v prvním příkladu. Zkoušel jsem tohle ale je to nesmysl.
    #!/usr/bin/python
    def Seznam():
          file = open("/tmp/seznam", "r")
          list = file.readlines()
    Soubor /tmp/seznam
    #!/usr/bin/python
    items = [1, 2, 3, 4, 5, 6, 7, 8]
    ten obsah souboru /tmp/seznam bych mohl ještě nadefinovat takto, jestli to něčemu popůže (bez nazvu seznamu)
    #!/usr/bin/python
    [1, 2, 3, 4, 5, 6, 7, 8]
    Zkoušel jsem to i importovat ale bez výsledku. Navíc jsem nenašel způsob jak přinutit importovat nazv uložený v proměnné
    var = "nazevsouboru"
    import var
    Poradí někdo?

    Odpovědi

    xxxxxx avatar 11.5.2015 23:20 xxxxxx | skóre: 23
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    Doporučuji použít JSON:

    Uložení:
    import json
    
    lst = [1, 2, 3, 4, 5]
    
    fw = open('filename.json', 'w')
    
    json.dump(list, fw)
    
    fw.close()
    
    
    Načtení:
    import json
    
    fw = open('filename.json', 'r')
    
    lst = json.load(fw)
    
    fw.close()
    
    
    Výhoda je v tom, že to funguje i na další datové typy, jako třeba dict.
    12.5.2015 06:17 pavel
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    možná pomůže result=eval("[1,2,3,4]")
    Fuky avatar 12.5.2015 09:20 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    Doporučuji používat fci eval() s rozumem, pro tento typ úlohy je naprosto nevhodná. Je třeba rozlišovat mezi datovým souborem a skriptem, který si může dělat co se mu zlíbí.
    rADOn avatar 12.5.2015 14:40 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    Presne tak, eval je koncentrovany zlo a na jeho pouziti by mel byt zbrojni pas. Kdyz uz bych chtel cist pajtni reprezentaci, tak v modulu ast je funkce literal_eval() ktera se da pouzit stejne dobre a neni zdaleka tak brisantni :-)

    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    12.5.2015 09:06 Sodalite
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu

    To čtení z toho souboru je v podstatě dobře, ale formát toho souboru správně není.

    Pokud bych se nechtěl učit ten JSON, tak musím vědět, že funkce readlines() čte jednotlivé řádky souboru a ty pak vrací jako seznam (list).

    Z toho teda vyplývá, že ty položky seznamu musím mít vždy jednu položku na řádek.

    Druhá varianta by byla uložit do souboru hodnoty oddělené čárkou a ty potom oddělit do seznamu pomocí metody split(separator), kde separátor by byla ta čárka.

    Kombinací těchto dvou postupů lze dobře zpracovat tzv. CSV soubor.

    12.5.2015 09:07 pet
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    echo '1, 2, 3, 4, 5, 6, 7, 8' > /tmp/seznam

    python2:

    map( lambda x: x.strip(), open( '/tmp/seznam' ).read().strip().split( ',' )

    python3:

    list( map( lambda x: x.strip(), open( '/tmp/seznam' ).read().strip().split( ',' ) ) )

    Fuky avatar 12.5.2015 10:08 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu

    Neuvedl jsi podrobnosti, takže těžko zvolit optimální řešení. Mimo již uvedených možností lze ještě např. využít:

    Na py.cz najdeš dost zdrojů pro pochopení základů, bylo by dobré, aby jsi dotazy pokládal až si tyto základy sám nastuduješ. Měl jsi problém s importem modulu, tak se podívej jak se s moduly pracuje.

    rADOn avatar 12.5.2015 15:05 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    Navíc jsem nenašel způsob jak přinutit importovat nazv uložený v proměnné
    var = "nazevsouboru"
    import var
    var = __import__("nazevsouboru")
    Ale to uz je vyssi divci a dokud nebudes vedet jak fungujou jmenny prostory tak bys takovy veci nemel delat pacz se s nima da (ne)pekne strelit do nohy. Importuje se kod a tedy bys z principu mel vedet co importujes – na deserializaci dat ze souboru ti kolegove vyse poradili zpusobu vic nez dost.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    12.5.2015 21:36 Dědek
    Rozbalit Rozbalit vše Re: Načtení seznamu ze souboru v Pythonu
    Zajímavé čtení, děkuji všem.

    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.