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:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 15
    včera 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 16
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 11
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

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

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 393 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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: 453×
    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.