Метод tofile
Метод tofile записывает содержимое массива в двоичный файл в формате raw (сырые данные). Данные сохраняются в порядке C-стиля (по строкам) независимо от реального порядка хранения массива. Метод не сохраняет информацию о форме массива или типе данных, поэтому при чтении нужно знать эти параметры заранее.
Первый параметр метода - fid, может быть строкой с именем файла или уже открытым файловым объектом. Второй параметр - sep, позволяет указать разделитель для текстового вывода. Третий параметр - format, определяет формат вывода для чисел, используется только вместе с разделителем.
Синтаксис
ndarray.tofile(fid, sep='', format='%s')
Пример
Давайте запишем одномерный массив в двоичный файл:
import numpy as np
arr = np.array([1, 2, 3, 4, 5], dtype=np.int32)
arr.tofile('data.bin')
print("File saved")
Результат выполнения кода:
"File saved"
Пример
Теперь прочитаем сохранённые данные с помощью fromfile, указав правильный тип:
import numpy as np
loaded = np.fromfile('data.bin', dtype=np.int32)
print(loaded)
Результат выполнения кода:
[1 2 3 4 5]
Пример
Сохраним двумерный массив в текстовом формате с разделителем-запятой:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr.tofile('data.csv', sep=',')
print("CSV saved")
Результат выполнения кода:
"CSV saved"
Содержимое файла:
1,2,3,4,5,6
Пример
Запишем массив в текстовый файл с настраиваемым форматом чисел:
import numpy as np
arr = np.array([1.2345, 2.3456, 3.4567])
arr.tofile('float.txt', sep=' ', format='%.2f')
print("Formatted saved")
Результат выполнения кода:
"Formatted saved"
Содержимое файла:
1.23 2.35 3.46
Пример
Запишем массив в уже открытый файловый объект:
import numpy as np
arr = np.array([10, 20, 30, 40])
with open('open_file.bin', 'wb') as f:
arr.tofile(f)
print("Written to open file")
Результат выполнения кода:
"Written to open file"