Как я могу сохранить измененный файл в этом модуле? - PullRequest
1 голос
/ 31 октября 2019

У меня есть файл DBF (строка ~ 2 тысячи). Моя цель - изменить некоторые значения в сырье на правильные значения. https://dbfread.readthedocs.io Я использую этот модуль. Но я не могу понять, как сохранить измененный текст? Или, может быть, это moudle только для чтения файлов DBF?

Стандартный метод файла .close - не работает

1 Ответ

0 голосов
/ 31 октября 2019

Каждая запись должна быть сохранена индивидуально, и это можно сделать двумя способами:

dbf.write(record, {'cust_name': 'new data', 'cust_rate': 0.09)

и

with record:
    record.cust_name = 'new data'
    record.cust_rate = 0.09
# context manager ends, record is automatically saved
# more code here

В отличие от современных баз данных, каждая запись в dbf являетсяживая копия. Раньше я сразу записывал изменения на диск, но тогда запись могла быть повреждена, если позднее поле изменилось. Таким образом, теперь изменения ставятся в очередь и записываются только на диск с помощью команды .write(), или когда менеджер контекста записи успешно завершается.

...