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:55 | IT novinky

    Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | IT novinky

    Společnost Framework představila nový Framework Laptop 12 s Intel Core Series 3, Thunderbolt 4, Wi-Fi 7, volitelnou čtečkou otisků prstů a podsvícenou klávesnicí s open-source firmwarem ZMK. Objednat lze s předinstalovanou Fedorou 44 KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byl vydán Mozilla Firefox 154.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 154 bude brzy k dispozici také na Flathubu a Snapcraftu.

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

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 168 (pdf).

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

    Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 10. Přehled novinek v příspěvku na blogu.

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

    Interaktivní editor binárních dat GNU poke byl vydán ve verzi 5.0 (seznam změn).

    |🇵🇸 | Komentářů: 8
    17.8. 18:55 | Nová verze

    Byla vydána verze 0.85 telnet a ssh klienta PuTTY (Wikipedie). Řešeno je 5 zranitelností.

    Ladislav Hagara | Komentářů: 0
    17.8. 13:33 | Zajímavý článek

    Byly publikovány novinky z vývoje GIMPu. Pracuje se na novém formátu souborů. Stávající binární XCF bude nahrazen "zazipovaným XML". XCF zůstane plně podporován pouze pro načítání starých souborů.

    Ladislav Hagara | Komentářů: 10
    17.8. 12:33 | Zajímavý projekt

    Workshop o umělé inteligenci v Dartmouthu proběhl před 70 lety, od 18. června do 17. srpna 1956. Dvouměsíční soustředění 6–11 informatiků, iniciované Johnem McCarthym, položilo základy oboru umělé inteligence.

    |🇵🇸 | Komentářů: 6
    17.8. 03:00 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 7.1 oznámil Linus Torvalds vydání Linuxu 7.2. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2419 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    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: 851×
    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.