Метод flush
Метод flush класса memmap
принудительно записывает все изменения,
внесённые в отображённый в память массив,
на диск. Это гарантирует, что данные,
изменённые в памяти, будут сохранены
в файле на диске. Метод не принимает
никаких параметров и не возвращает значения.
Синтаксис
memmap.flush()
Пример
Создадим файл с массивом и изменим его:
[1 2 3 4 5]
import numpy as np
# Create a memmap array from file
arr = np.memmap('data.npy', dtype='int32', mode='r+', shape=(5,))
# Change the data
arr[0] = 10
arr[2] = 30
print(arr)
Результат выполнения кода:
[10 2 30 4 5]
Метод flush запишет изменения на диск:
import numpy as np
# Create a memmap array from file
arr = np.memmap('data.npy', dtype='int32', mode='r+', shape=(5,))
# Change the data
arr[0] = 10
arr[2] = 30
# Write changes to disk
arr.flush()
После вызова flush данные из памяти
будут записаны в файл.
Пример
Использование flush при работе с большими
файлами для гарантированного сохранения данных:
import numpy as np
# Create a file with random data
data = np.random.randint(0, 100, size=(100,))
data.tofile('large_data.npy')
# Open as memmap
arr = np.memmap('large_data.npy', dtype='int32', mode='r+', shape=(100,))
# Modify data
arr[10:20] = 999
# Explicitly flush to disk
arr.flush()
# Check that changes were applied
print(arr[10:20])
Результат выполнения кода:
[999 999 999 999 999 999 999 999 999 999]