Foros del Web » Programando para Internet » Python »

Duda con respecto a pyinotify - Monitoreando sistemas de archivos

Estas en el tema de Duda con respecto a pyinotify - Monitoreando sistemas de archivos en el foro de Python en Foros del Web. Hola amigos espero me puedan ayudar, Me encuentro monitoreando un sistema de archivos y necesito el evento en el que termina de grabarse el archivo ...
  #1 (permalink)  
Antiguo 18/12/2013, 08:04
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Duda con respecto a pyinotify - Monitoreando sistemas de archivos

Hola amigos espero me puedan ayudar,

Me encuentro monitoreando un sistema de archivos y necesito el evento en el que termina de grabarse el archivo en disco

hasta el momento este es mi codigo, este funciona para cuando se crea el archivo
Código Python:
Ver original
  1. import pyinotify
  2.  
  3. class EventHandler(pyinotify.ProcessEvent):
  4.  
  5.     def process_IN_CREATE(self, event):
  6.         print "Creacion del archivo :", event.pathname
  7.     archivo = event.name
  8.     ruta = event.pathname
  9.     archi=open('datos.txt','a')
  10.     archi.write('archivo:'+ ' '+ event.name + ' ' + 'ruta:'+ ' '+ event.pathname)
  11.     archi.write('\n')
  12.         archi.close()
  13.  
  14. wm = pyinotify.WatchManager()
  15. mask = pyinotify.IN_CREATE
  16.  
  17. handler = EventHandler()
  18. notifier = pyinotify.Notifier(wm, handler)
  19. wdd = wm.add_watch('/resources', mask, rec=True)
  20. notifier.loop()
  #2 (permalink)  
Antiguo 18/12/2013, 09:41
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 9 meses
Puntos: 1329
Respuesta: Duda con respecto a pyinotify - Monitoreando sistemas de archivos

Ese código no funciona no está correctamente identado.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 18/12/2013, 10:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Duda con respecto a pyinotify - Monitoreando sistemas de archivos

Carlangueitor gracias por responder, tienes razon queda mal identado al copiarlo

tienes algun aporte acerca del evento en el que termina de grabarse el archivo en disco ?

Código Python:
Ver original
  1. import pyinotify
  2.  
  3. class EventHandler(pyinotify.ProcessEvent):
  4.  
  5.     def process_IN_CLOSE_WRITE(self, event):
  6.         print "Creacion del archivo :", event.pathname
  7.         archivo = event.name
  8.         ruta = event.pathname
  9.         archi=open('datos.txt','a')
  10.         archi.write('archivo:'+ ' '+ event.name + ' ' + 'ruta:'+ ' '+ event.pathname)
  11.         archi.write('\n')
  12.         archi.close()
  13.  
  14. wm = pyinotify.WatchManager()
  15. mask = pyinotify.IN_CLOSE_WRITE
  16.  
  17. handler = EventHandler()
  18. notifier = pyinotify.Notifier(wm, handler)
  19. wdd = wm.add_watch('/resources', mask, rec=True)
  20. notifier.loop()
  #4 (permalink)  
Antiguo 18/12/2013, 10:04
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 9 meses
Puntos: 1329
Respuesta: Duda con respecto a pyinotify - Monitoreando sistemas de archivos

Sí, yo usaría otro evento ¿ya revisaste la documentación para ver si hay algún otro evento que te funcione?
__________________
Grupo Telegram Docker en Español
  #5 (permalink)  
Antiguo 18/12/2013, 10:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Duda con respecto a pyinotify - Monitoreando sistemas de archivos

estoy utilizando el evento IN_CLOSE_WRITE pero obtengo el siguiente error

Cita:
psycopg2.connect(database="python", user="postgres", password="hoe798css", host="192.168.102.6", port="5432")
^
IndentationError: unexpected indent
este es mi codigo
Código Python:
Ver original
  1. import pyinotify
  2. import psycopg2
  3.  
  4. class MyEventHandler(pyinotify.ProcessEvent):
  5.  
  6.     def process_IN_CLOSE_WRITE(self, event):
  7.         print "CLOSE_WRITE event:", event.pathname
  8.         print "Nombre :", event.name
  9.         print "Ruta", event.pathname
  10.         archivo = event.name
  11.         ruta = event.pathname
  12.         url = "http://192.168.102.8/repo_webcam/balcones-ruiz/"+archivo
  13.         tamano = len(archivo)
  14.         if tamano == 25:
  15.             anno=archivo[5:9]
  16.             mes=archivo[9:11]
  17.             dia=archivo[11:13]
  18.             hora=archivo[14:16]
  19.             minuto=archivo[16:18]
  20.             segundo=archivo[18:20]
  21.             archi=open('balcones-ruiz.txt','a')
  22.             archi.write('archivo:'+ ' '+ event.name + ' ' + 'ruta:'+ ' '+ event.pathname)
  23.             archi.write('\n')
  24.             archi.close()
  25.             conn = psycopg2.connect(database="python", user="postgres", password="hoe798css", host="192.168.102.6", port="5432")
  26.             print "Opened database successfully"
  27.             cur = conn.cursor()
  28.             cur.execute("INSERT INTO prueba VALUES(nextval('prueba_id_seq'), %s, %s, %s)", (anno+"-"+ mes +"-" + dia +" " + hora +":"+ minuto +":"  +segundo,url,ruta))
  29.             conn.commit()
  30.             print "Records created successfully";
  31.             conn.close()
  32.            
  33. def main():
  34.     # watch manager
  35.     wm = pyinotify.WatchManager()
  36.     wm.add_watch('/monitoreo/camip/balcones-ruiz', pyinotify.ALL_EVENTS, rec=True)
  37.  
  38.     # event handler
  39.     eh = MyEventHandler()
  40.  
  41.     # notifier
  42.     notifier = pyinotify.Notifier(wm, eh)
  43.     notifier.loop()
  44.  
  45. if __name__ == '__main__':
  46.     main()

Última edición por Montes28; 18/12/2013 a las 11:30
  #6 (permalink)  
Antiguo 18/12/2013, 11:42
 
Fecha de Ingreso: mayo-2013
Mensajes: 207
Antigüedad: 11 años, 7 meses
Puntos: 31
Respuesta: Duda con respecto a pyinotify - Monitoreando sistemas de archivos

Cita:
IndentationError: unexpected indent
No será que estás mezclando tabuladores y espacios en esa línea. Porqúe aunque parezca que está bien identado en realidad no es así.

Etiquetas: sistema, sistemas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:18.