Вы очень близки! Вы фактически добавляете в свой новый список new
каждый раз, когда заменяете письмо. Вот почему вы получаете так много значений в вашем списке.
Еще один способ запуска кода - создать копию grid1, а затем заменять каждое слово при каждой замене буквы. Вот новая функция, реализующая эти небольшие изменения:
def lower_words(grid, positions_words_occupy):
new = grid1.copy()
for position in positions_words_occupy:
line= position[0]
column= position[1]
row= new[line]
element= row[column]
#new.remove(row)
new_word = row[:column] + element.lower() + row[column+1:]
new[line] = new_word
return new
Выход работает lower_words(grid1, positions_words_occupy)
:
['pIgatoS', 'aNRBKFD', 'tMcaoXa', 'oObBYQU', 'MACoUIV', 'EEJMiWL']
Облегченный ответ, хотя и требующий большой зависимости библиотеки (это того стоит, IMO)!
QT предоставляет класс QFileSystemwatcher , который использует собственный механизм базовой платформы.
Более того, вы можете использовать привязки языка QT для Python или Ruby. Здесь - простое приложение PyQT4, которое использует QFileSystemWatcher .
Примечания
И на OS X это назвало fsevents. Это - уровень ОС API, таким образом, это является самым легким к доступу от C или C++. Это должно быть доступно почти с любого языка, хотя привязка для Вашего предпочтительного языка еще не могла быть записана.
API полностью отличаются для Windows, Linux, Mac OS X и любого другого Unix, который можно назвать, это кажется. Я не знаю ни о какой межплатформенной библиотеке, которая обрабатывает это последовательным способом.