Я решил, что я не люблю автоматическую регистрацию и переименование, предоставленную Mendeley, но обнаружил, что он отслеживает все в базе данных sqlite, которую я могу легко прочитать и изменить с Python.Рассмотрение затем обновление строк в sqlite с помощью Python
Мой вопрос: если я собираюсь перебирать строки таблицы с файловыми путями и хэшами, которые служат в качестве идентификаторов, которые используются в другом месте в базе данных, что является подходящим шаблоном для обновления путей когда я двигаюсь, проверьте, нужно ли переименовать файл, а затем нужно обновить строку в db при перемещении файла.
Я начал собирать некоторые Python для этого, но мне кажется, что мне, вероятно, нужно сделать запрос заранее, чтобы получить все строки, которые я собираюсь позже перебирать, а затем выполнить инструкции REPLACE или UPDATE для файлов, которые я решил переместить.
Я не знаком с внутренними компонентами модуля sqlite3, но я полагаю, что было бы плохой идеей делать REPLACE/UPDATE при повторении курсора, используемого для первоначального выбора.
Есть ли другой способ сделать это, что не требует возврата с REPLACE/UPDATE? Мне нужно делать запросы из других таблиц, используя хэш файла, чтобы получить некоторые другие метаданные, чтобы построить переименование.
Спасибо за примечания по этому вопросу. Я больше беспокоился о правильности, чем о производительности. Я полагаю, что нужно было бы использовать более высокий уровень абстракции, такой как ORM, чтобы иметь возможность делать то, что я изначально хотел, по крайней мере, с точки зрения кода Python.В конце концов, я заметил, по крайней мере, для Менделей, что мне фактически не нужно обновлять имена файлов в базе данных, поскольку, если один переименовывает файл, а затем просит Mendeley посмотреть папку, содержащую его, он обновит пути, когда найдет переименован файлы с тем же хешем, что и предыдущий путь к файлу. –