Класс DataSource
Класс DataSource из модуля numpy.lib.datasource
предоставляет унифицированный интерфейс для работы с источниками данных.
Он позволяет загружать данные как из локальных файлов, так и из удалённых
источников (по протоколам HTTP, HTTPS, FTP). Класс автоматически
кэширует загруженные файлы в локальной директории и управляет путями
к данным.
Синтаксис
class numpy.lib.datasource.DataSource(
destpath: str = None,
*,
verbose: bool = False,
open_hook: Callable = None
)
При создании экземпляра класса можно указать следующие параметры:
destpath - путь к директории для хранения загруженных файлов
(по умолчанию используется текущая рабочая директория);
verbose - флаг, управляющий выводом информации о загрузке
(по умолчанию False);
open_hook - функция-обработчик, вызываемая перед открытием
файла (может использоваться для добавления собственной логики).
Основные методы
Класс предоставляет несколько ключевых методов для работы с данными:
open(path, mode='r') - открывает файл из указанного источника
(локального или удалённого) и возвращает файловый объект;
exists(path) - проверяет существование файла по указанному пути
(включая удалённые ресурсы);
abspath(path) - возвращает абсолютный путь к файлу в локальной
файловой системе (если файл был загружен из удалённого источника,
он будет сохранён в директории кэша).
Пример
Создадим экземпляр класса DataSource и загрузим текстовый файл
из удалённого источника:
import numpy as np
from numpy.lib.datasource import DataSource
ds = DataSource(verbose=True)
with ds.open('https://example.com/data.txt', 'rt') as f:
content = f.read()
print(content)
Результат выполнения кода (пример вывода):
"Sample data from remote source"
Пример
Загрузим данные из удалённого источника и сохраним их в локальной директории для дальнейшего использования:
import numpy as np
from numpy.lib.datasource import DataSource
ds = DataSource(destpath='./cache', verbose=True)
local_path = ds.abspath('https://example.com/dataset.npy')
arr = np.load(local_path)
print(arr)
Результат выполнения кода:
[1 2 3 4 5]
Пример
Проверим существование файла перед его загрузкой:
import numpy as np
from numpy.lib.datasource import DataSource
ds = DataSource()
if ds.exists('https://example.com/data.csv'):
with ds.open('https://example.com/data.csv', 'r') as f:
print("File exists and opened successfully")
else:
print("File does not exist")
Результат выполнения кода:
"File exists and opened successfully"
Пример
Работа с локальными файлами через DataSource:
1 2 3 4 5 6 7 8 9 10
import numpy as np
from numpy.lib.datasource import DataSource
ds = DataSource()
with ds.open('data.bin', 'r') as f:
data = f.read()
arr = np.fromstring(data, sep=' ')
print(arr)
Результат выполнения кода:
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
Смотрите также
-
класс
DataSource,
который предоставляет единый интерфейс для доступа к данным из различных источников -
метод
open,
который открывает файл из указанного источника и возвращает файловый объект -
метод
exists,
который проверяет существование файла по указанному пути -
метод
abspath,
который возвращает абсолютный путь к файлу в локальной файловой системе