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 15:11 | IT novinky

    Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia online tabulky Proton Sheets v Proton Drive.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Komunita

    O víkendu (15:00 až 23:00) probíha EmacsConf 2025, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy budou k dispozici přímo z programu.

    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Komunita

    Provozovatel internetové encyklopedie Wikipedia jedná s velkými technologickými firmami o uzavření dohod podobných té, kterou má s Googlem. Snaží se tak zpeněžit rostoucí závislost firem zabývajících se umělou inteligencí (AI) na svém obsahu. Firmy využívají volně dostupná data z Wikipedie k trénování jazykových modelů, což zvyšuje náklady, které musí nezisková organizace provozující Wikipedii sama nést. Automatické programy

    … více »
    Ladislav Hagara | Komentářů: 19
    včera 15:22 | IT novinky

    Evropská komise obvinila síť 𝕏 z porušení unijních pravidel, konkrétně nařízení Evropské unie o digitálních službách (DSA). Vyměřila jí za to pokutu 120 milionů eur (2,9 miliardy Kč). Pokuta je podle názoru amerického ministra zahraničí útokem zahraničních vlád na americký lid. K pokutě se vyjádřil i americký viceprezident: „EU by měla podporovat svobodu projevu, a ne útočit na americké společnosti kvůli nesmyslům“.

    Ladislav Hagara | Komentářů: 14
    5.12. 17:11 | IT novinky

    Společnost Jolla spustila kampaň na podporu svého nového telefonu Jolla Phone se Sailfish OS. Dodání je plánováno na první polovinu příštího roku. Pokud bude alespoň 2 000 zájemců. Záloha na telefon je 99 €. Cena telefonu v rámci kampaně je 499 €.

    Ladislav Hagara | Komentářů: 30
    5.12. 15:11 | IT novinky

    Netflix kupuje Warner Bros. včetně jejích filmových a televizních studií HBO Max a HBO. Za 72 miliard dolarů (asi 1,5 bilionu korun).

    Ladislav Hagara | Komentářů: 2
    5.12. 14:11 | IT novinky

    V Las Vegas dnes končí pětidenní konference AWS re:Invent 2025. Společnost Amazon Web Services (AWS) na ní představila celou řadu novinek. Vypíchnout lze 192jádrový CPU Graviton5 nebo AI chip Trainium3.

    Ladislav Hagara | Komentářů: 0
    5.12. 00:33 | Nová verze

    Firma Proxmox vydala novou serverovou distribuci Datacenter Manager ve verzi 1.0 (poznámky k vydání). Podobně jako Virtual Environment, Mail Gateway či Backup Server je založená na Debianu, k němuž přidává integraci ZFS, webové administrační rozhraní a další. Datacenter Manager je určený ke správě instalací právě ostatních distribucí Proxmox.

    |🇵🇸 | Komentářů: 12
    4.12. 23:44 | Nová verze

    Byla vydána nová verze 2.4.66 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 5 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    4.12. 14:00 | IT novinky

    Programovací jazyk JavaScript (Wikipedie) dnes slaví 30 let od svého oficiálního představení 4. prosince 1995.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 437 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: Python, Zjistovani novych souboru v adresari

    30.3.2010 17:24 Ondrej Liska
    Python, Zjistovani novych souboru v adresari
    Přečteno: 497×
    Dobry den,

    programuji v pythonu programek ktery by mel reagovat na vznik noveho souboru ve sepcifikovanem adrresari.

    Zatim to delam tak, ze kazdou vterinu prohlizi obsah zadane slozky a pokud se tam objevi nejaky novy soubor tak porovnam soucasny timestamp a timestamp data modifikace souboru a pokud je soubor novejsi, vypisu ho.

    Toto reseni vsak neni idealni. Je prosim nejaka inteligentnejsi reseni?

    Odpovědi

    30.3.2010 18:19 Sten
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Řešení se jmenuje pyinotify
    30.3.2010 18:33 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Mohl by mi prosim nekdo napsat jak pyinotify pouzit na tento konkretni problem? Nejak se v tom nemuzu vyznat a ten pyinotify zdrojak ma asi 2000 radku.
    30.3.2010 18:50 chrono
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Dokumentáciu si pozeral? (napr. príklad a konkrétne súbor tutorial_notifier.py)
    30.3.2010 18:58 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    jj, presne na ten jsem se dival, ale z neho mi nebylo jasne, jak potom nazev nove vytvoreneho souboru predam zpet do volajici metody urcite tridy. Jakym zpusobem je toto mozne?
    30.3.2010 19:26 chrono
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Musíš ten názov predať späť? Nestačí, aby si v tej triede HandleEvents zavolal funkciu, ktorá ten nový súbor nejako spracuje?
    30.3.2010 19:36 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    No potreboval bych ten nazev predat metode tridy, od niz mam jiz vytvorenou instanci. Takze pokud bych tu metodu volal primo z HandleEvents, tak bych tam zas potreboval nejak dostat odkaz na instanci te tridy.
    30.3.2010 19:52 chrono
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Kombinácia príkladov tutorial_notifier.py a daemon.py:
    import pyinotify
    import functools
    import sys
    
    wm = pyinotify.WatchManager()  # Watch Manager
    mask = pyinotify.IN_CREATE  # watched events
    
    class Trieda(object):
        def zobraz(self, pathname):
            print pathname
    
    def on_loop(notifier, trieda):
        trieda.zobraz(notifier.pathname)
    
    on_loop_func = functools.partial(on_loop, trieda=Trieda())
    notifier = pyinotify.Notifier(wm, on_loop_func)
    wdd = wm.add_watch('/tmp', mask, rec=True)
    
    notifier.loop()
    30.3.2010 20:15 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    No ja to tam takto:
    class mojeTrida:
        # moje trida, ktera ma na starosti danou akci nad soubory
        ...
        def monitorMode(dir)
            # Az po zavolani teto metody vim, ze uzivatel chce pouzit monitorovaci rezim
            # Tady nekde by melo byt to cekani na nove tvoreny soubor
            # Jakmile zjistim, ze mam novy soubor, vezmu jeho jmeno a zavolam metodu
            # __zpracujSoubor s parametrem nazev noveho souboru
            if mameNovySobor:
                self.__zpracujSoubor(file)
    
    
        def __zpracujSoubor(file)
            # zakladni metoda tridy, ktera provadi danou akci nad souborem
    
    # ========= main =========
    
    # Na zacatku programu pouze zalovam metodu na monitorovani slozky
    inst = mojeTrida()
    inst.monitorMode("/home/user/test")
    
    30.3.2010 20:17 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Takze otazka zni, jak zakomponovat to Vase reseni do toho co jsem vyse uvedl?
    30.3.2010 20:34 chrono
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Môžeš vyskúšať napr. niečo takéto:
    import pyinotify
    
    class mojeTrida:
        def monitorMode(self, dir):
            wm = pyinotify.WatchManager()
            notifier = pyinotify.Notifier(wm, self.__process_event)
            wdd = wm.add_watch(dir, pyinotify.IN_CREATE, rec=True)
            notifier.loop()
    
        def __process_event(self, notifier):
            self.__zpracujSoubor(notifier.pathname)
    
        def __zpracujSoubor(self, file):
            print file
    
    inst = mojeTrida()
    inst.monitorMode("/tmp")
    30.3.2010 21:23 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Ano, funguje to, dekuji. Jde nejak udelat i to, aby si pyinotify vsimal jen souboru specifikovanych nejakym filtrem? Videl jsem v prikladech ze je umi pomoci filtru vyloucit (exclude) tak podporuje i neco jako include?
    30.3.2010 22:29 chrono
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Také niečo to nepodporuje. Problém je, že (okrem iného) by to muselo testovať, či je ten objekt adresár a v takom prípade sa to nebude filtrovať (inak by sa kompletne zablokovalo kontrolovanie tých udalostí).

    Asi najjednoduchšie bude pridať tú kontrolu do tej funkcie __process_event (urobil som to podobne, ako je to urobené v ExcludeFilter):
    import pyinotify
    import re
    
    class mojeTrida:
        def monitorMode(self, dir):
            wm = pyinotify.WatchManager()
            notifier = pyinotify.Notifier(wm)
            incl_lst = ['.*/apache[0-9]+\.log', '.*~']
            self._lregex = []
            for regex in incl_lst:
                self._lregex.append(re.compile(regex, re.UNICODE))
            wdd = wm.add_watch(dir, pyinotify.IN_CREATE, rec=True, proc_fun=self.__process_event)
            notifier.loop()
    
        def __process_event(self, event):
            path = event.pathname
            for regex in self._lregex:
                if regex.match(path) is not None:
                    self.__zpracujSoubor(path)
                    break
    
        def __zpracujSoubor(self, file):
            print file
    
    inst = mojeTrida()
    inst.monitorMode("/tmp")
    (možno by bolo lepšie, keby sa tie vzory predávali ako parameter funkcie monitorMode)
    31.3.2010 00:42 Ondrej Liska
    Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
    Dobry napad, dekuji.

    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.