Ответ 1
Существует несколько методов, выберите наиболее подходящий для вашего приложения.
Если вы работаете с numpy, может быть неплохо использовать numpy load
, loadtxt
, fromfile
или genfromtxt
, потому что после предварительной обработки ваш файл будет загружен в подходящую структуру.
Но если вы не собираетесь работать с numpy (или любой другой большой библиотекой, которая имеет некоторые функции загрузки файлов), это может быть чрезмерным использованием ее только для загрузки файла... Рассмотрим использование встроенных функций python, или csv из стандартной библиотеки... Это будет намного более гибким и более плавным.
Вот как, используя примеры с помощью file.txt
(значения каждой строки разделяются вкладками):
1 2 3 4
7 8 9 10 11 12
13 14 15
встроенный python
Нет модуля для импорта, довольно простой, гибкий, хороший вариант для большинства ситуаций, imho.
Загрузка файла в двоичном режиме для чтения (rb
flags) в таблице (список списков значений, разделенных в файле с вкладками) с помощью только встроенных функций:
>>> file = open('file.txt', 'rb')
>>> table = [row.strip().split('\t') for row in file]
CSV
модуль csv из стандартной библиотеки также довольно прост.
Обратите внимание, что вместо CSV значения Comma Separated Values фактически отсутствуют, и вы можете выбрать любой разделитель, который вы хотите. Поэтому CSV означает все файлы, ориентированные на ячейки или таблицы.
Загрузка файла в двоичном режиме для чтения (rb
flags) в таблице (список списков значений, разделенных в файле с вкладками) с помощью csv reader
:
>>> import csv
>>> file = open('file.txt', 'rb')
>>> data = csv.reader(file, delimiter='\t')
>>> table = [row for row in data]
Доступ к ячейкам
Таблица была загружена аналогично двум предыдущим примерам, и к данным таблицы можно получить доступ, например, table[row][col]
:
>>> table
[['1', '2', '3', '4'], ['7', '8', '9', '10', '11', '12'], ['13', '14', '15']]
>>> table[0]
['1', '2', '3', '4']
>>> table[1][2]
9