2014-10-29 1 views
0

Я пытаюсь создать простую часть программного обеспечения, которая автоматически делает список на основе содержимого файла любой вновь вставленной карты памяти USB.python pyinotify не работает с os.listdir() или glob.glob()

Использование ubuntu 14.04.

теперь используют os.listdir() и glob.glob() прекрасно работают сами по себе ...

однако при его использовании с pyinotify, и получение input_dir для os.listdir() или Глоб. glob() из event.pathname ... Я просто получаю пустой список каждый раз ...

попытался объединить строки, чтобы добавить одинарные кавычки, двойные кавычки и т. д. ... безрезультатно.

вот фрагмент кода

#!/usr/bin/python 

#notifier setup 
import pyinotify, os, glob 

wm=pyinotify.WatchManager() 

class EventHandler(pyinotify.ProcessEvent): 
    def process_IN_CREATE(self,event): 
     global path 
     path = event.pathname 
     usb_insertion() 

def usb_insertion(): 
    print glob.glob(path+"/*") 
    print "listdir", os.listdir(path) 


handler=EventHandler() 
notifier=pyinotify.Notifier(wm, handler) 
wdd=wm.add_watch('/media', pyinotify.IN_CREATE, rec=True) 

notifier.loop() 
+0

Попробуйте напечатать переменную 'path', чтобы вы могли видеть, что это такое. Кроме того, не используйте глобальные здесь, используйте параметр! – kwatford

+0

Я решил это на случай, если кто-то заинтересован. Добавляем time.sleep (2) перед тем, как делать glob или os.listdir(), похоже, сделали это. – hayderOICO

+1

Вам предлагается предоставить ответы на свои вопросы, если вы считаете, что решение будет полезно другим. В противном случае вы можете просто удалить вопрос. – chepner

ответ

1

Я решил это в случае, если кто-то заинтересован.

Добавляем time.sleep (2) перед тем, как делать glob или os.listdir(), похоже, сделали это.