Найти - Пользователи
Полная версия: мониторинг файлов
Начало » Python для новичков » мониторинг файлов
1 2 3
doza_and
Уж в таких случаях смотрите документацию.
update - требует словарь, у вас список
pop удаляет по одной штучке а не группой.
vuln
doza_and
Уж в таких случаях смотрите документацию.update - требует словарь, у вас списокpop удаляет по одной штучке а не группой.
мне как раз по одной надо удалить (или добавлять )

вот такая конструкция удаляет
import os, time
path_to_watch = "c:\\temp\\"
before = dict ([(f, 0) for f in os.listdir (path_to_watch)])
print (before)
before.pop('test1')
print (before)

результат выполнения :
{'test1.zip': 0, 'test1': 0, 'The Crossroads Of Time.jpg': 0, 'atmelstudio.txt': 0}
{'test1.zip': 0, 'The Crossroads Of Time.jpg': 0, 'atmelstudio.txt': 0}
doza_and
 
removed = [f for f in before if not f in after]
  if added: before.update(added)  #добавить  новую пару в словарь (не работает)
  if removed: before.pop(removed)  # удалить   пару из словаря (не работает)
removed это list а там где работает вы делаете
vuln
before.pop('test1')
просто задаете значение
протестируйте
vuln
before.pop( [] )
Если не понимаете что делаете в коде, делайте print, пользуйтесь отладчиком, мне это сильно помогает :).
vuln
doza_and
спасибо пока вот такая конструкция вроде работает
import os, time
path_to_watch = "c:\\temp\\"
before = dict ([(f, 0) for f in os.listdir (path_to_watch)])
while 1:
  time.sleep (3)
  after = dict ([(f, 0) for f in os.listdir (path_to_watch)])
  added = [f for f in after if not f in before]
  removed = [f for f in before if not f in after]
  
  if added:
    for x in added:
      before.setdefault(x,0)
  if removed:
    for x in removed:
      before.pop(x)
  for x in before:
      before[x] += 1
      if before[x] == 100:
         print ('Alarm!!!!')
  print (before)

FishHook
vuln
спасибо пока вот такая конструкция вроде работает
Какое-то нагромождение бреда
ayb
Ага, учитывая что есть к примеру watchdog
vuln
FishHook
Какое-то нагромождение бреда
не спорю, я новичок и открыл тему в ветке “Python для новичков ” но конструкция работает - основу взял отсюда: http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html
по поводу бреда поделитесь своей конструкцией так сказать наставьте на путь истинный
FishHook
vuln
по поводу бреда поделитесь своей конструкцией
Не, мы пойдем другим путём
вы будете объяснять свой код. Например, что вы хотите получить вот этим
  if added:
    for x in added:
      before.setdefault(x,0)
вопрос конкретный: зачем setdefault?
vuln
FishHook
вопрос конкретный: зачем setdefault?
добавляю новую пару в словарь

dict.setdefault(key) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).
взято отсюда http://pythonworld.ru/tipy-dannyx-v-python/slovari-dict-funkcii-i-metody-slovarej.html
FishHook
Ок, задам вопрос по другому, зачем вы используете setdefault, там где это не нужно?
Почему не так
before[x] = 0
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB