Как сделать массив из файла python

Добавил пользователь Алексей Ф.
Обновлено: 04.10.2024

Использование файлов CSV широко распространено в области анализа данных / науки о данных в Python. CSV означает Comma Separated Values . Эти типы файлов используются для хранения данных в виде таблиц и записей. В этих таблицах много столбцов, разделенных запятыми. Одна из задач при работе с этими CSV-файлами - импортировать эти файлы в виде массивов данных.

В этом руководстве будут представлены различные методы импорта файлов CSV в виде массивов данных.

Используйте numpy.loadtxt() для чтения файла CSV в массив в Python

Как следует из названия, функция open() используется для открытия файла CSV. Функция NumPy loadtxt() помогает загружать данные из текстового файла. В аргументах этой функции необходимо упомянуть два параметра: имя файла или переменную, в которой хранится имя файла, а другой называется delimiter , который обозначает строку, используемую для разделения значений. Значение разделителя по умолчанию - пробел.

Обратите внимание, что в качестве разделителя используется запятая. Следовательно, разделителем в возвращаемом массиве является запятая.

Используйте метод list() для чтения файла CSV в одномерный массив в Python

Здесь мы используем модуль csv Python, который используется для чтения этого CSV-файла в том же табличном формате. Точнее, метод reader() этого модуля используется для чтения файла CSV.

Наконец, метод list() принимает все последовательности и значения в табличном формате и преобразует их в список.

Здесь мы сохраняем данные, считанные функцией reader() , в переменной и используем эту переменную для преобразования этих данных в список.

Сопутствующая статья - Python CSV

Сопутствующая статья - Python Array


report this ad

Как прочитать файл в список в Python

Чтение файлов в Python - это достаточно тривиальная процедура. Но несмотря на внешнюю простоту, здесь может возникнуть ряд вопросов, которые новичков могут поставить в ступор. Так, например, если не указать кодировку utf-8 при открытии файла, то вы можете получить ошибку при чтении файлов в кириллице.

Чтение файла в список - это операция требуется для многих задач. Если Вы знаете PHP, то знаете, что в PHP есть функция file, которая читает файл и преобразует его в массив.

В следующем примере мы реализуем подобную функцию в Python.

Используем так:


Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 0 ):

В качестве сериализованных структур данных программисты на Python активно используют массивы, списки и словари. Хранение этих структур данных постоянно требует файл или базу данных для работы с ними. Эта статья рассказывает, как печатать список в файл и как считать его обратно в память.

Чтобы записать данные в файл и считать их из файла, язык программирования Python предлагает стандартные методы write() and read() для работы с одиночными строками, а также writelines() и readlines() для работы с множеством строк. Более того, модули pickle и json module предоставляют разумные способы работы с сериализованными наборами данных.

Использование методов read и write

Основные методы отлично работают с символами (строками). Построчное сохранение списка в файл listfile.txt работает следующим образом:

В строке 6 listitem дополнен символом разрыва строки “\n”, во-первых, и сохранён в выходном файле, во-вторых. Как прочесть список полностью из файла listfile.txt обратно в память, покажет следующий код на Python:

Имейте в виду, что вам понадобится удалить перенос строки в самом её конце. Здесь нам помогает то, что Python позволяет применять списочные операции к строкам. В строке 8 кода выше удаление сделано просто как операция над самой строкой, что сохраняет всё, кроме последнего элемента. Он содержит символ “\n”, обозначающий перенос строки в системах UNIX/Linux.

Использование методов writelines и readlines

Как упомянуто в начале этой статьи, Python также содержит два метода writelines() и readlines() , чтобы писать и читать множество строк за один шаг соответственно. Напечатать весь список в файл или на диск поможет следующий код на Python:

Прочитать весь список из файла на диске поможет следующий код на Python:

Код выше показывает более традиционный подход, взятый из других языков программирования. Чтобы написать его в более “питоньем” стиле, посмотрим на код ниже:

Открыв файл listfile.txt в строке 5, полностью переделываем список в строке 6. Сначала читаем содержимое файла через readlines() . Затем в цикле for удаляем окончание из каждой строки с помощью метода rstrip() . В конце добавляем строку к списку мест как новый элемент. По сравнению с прошлым листингом код получился более компактным, но его может быть сложнее прочесть начинающим программистам на Python.

Использование модуля pickle

Другие методы, объяснённые до сих пор, хранят список в читаемом для человека формате. В случае, когда это не нужно, вам может пригодиться модуль pickle. Его метод dump() эффективно хранит список в виде двоичного потока данных. В строке 7 (в коде ниже) выходной файл listfile.data открыт для записи в двоичном режиме (“wb”). В строке 9 список хранится в открытом файле с использованием метода dump() .

На следующем шаге мы читаем список из файла. Сначала открываем выходной файл listfile.data для чтения в двоичном режиме (“rb”) в строке 4. Потом загружаем список мест из файла, применяя метод load() .

Эти два примера показывают использование строк. Кстати, pickle работает со всеми видами объектов языка Python, такими как строки, числа, определённые в самом коде структуры, а также любые другие встроенные структуры данных Python.

Использование формата JSON

Используемый pickle формат двоичных данных специфичен для Python. Чтобы улучшить взаимодействие между различными программами, JavaScript Object Notation (JSON) предлагает лёгкую в использовании и читаемую для человека схему, и поэтому стал очень популярным.

Следующий пример показывает, как печатать список из элементов различных типов в выходной файл с помощью модуля json. В строке 4 определён основной список. Имея открытым файлом для записи в строке 7, метод dump() хранит основной список в файле, используя JSON.

Читать содержимое выходноо файла обратно в память так же просто, как записывать данные. Соответствующий dump() метод называется load() и работает следующим образом:

Вывод

Методы, показаные выше, разнятся от простой записи/чтенияя данных до сброса/загрузки через двоичные потоки с помощью pickle и JSON. Это значительно упрощает хранение списка и чтение его обратно в память.

как из txt файла записать данные в отдельные массивы
Высоту , температуру , давление , влажность (relh), по итогу 4 е массива
1000.0 -21
979.0 158 16.0 15.0 94 11.07 200 6 290.9 322.3 292.8
962.0 308 16.3 15.1 92 11.32 235 21 292.7 325.0 294.7
956.0 362 16.4 15.1 92 11.41 240 23 293.3 326.0 295.3
934.0 560 15.3 13.1 87 10.25 260 29 294.1 323.7 295.9
925.0 643 14.8 12.3 85 9.80 260 31 294.4 322.8 296.2
907.0 809 13.7 11.3 85 9.35 265 35 295.0 322.1 296.7
885.0 1017 12.4 10.1 86 8.81 265 29 295.7 321.4 297.3
850.0 1358 10.2 8.0 86 7.98 255 27 296.8 320.3 298.2
841.0 1446 9.5 7.5 88 7.80 250 27 297.0 320.0 298.4
820.0 1655 7.8 6.4 91 7.40 250 29 297.3 319.2 298.7
718.0 2742 3.6 1.8 88 6.11 250 39 304.2 322.9 305.4
700.0 2947 2.0 0.5 90 5.70 250 41 304.7 322.2 305.7
649.0 3550 -3.7 -4.8 92 4.15 244 45 304.9 317.9 305.6
616.0 3960 -5.5 -6.7 91 3.78 240 49 307.4 319.4 308.1
594.0 4245 -6.7 -8.0 90 3.54 240 49 309.2 320.6 309.9
591.0 4284 -8.3 -9.5 91 3.16 240 49 307.8 317.9 308.4
553.0 4797 -10.7 -12.0 90 2.77 240 49 310.9 319.9 311.4
531.0 5106 -14.7 -15.8 91 2.11 240 49 309.7 316.7 310.1
526.0 5177 -14.7 -15.8 91 2.13 240 49 310.5 317.6 310.9
512.0 5381 -14.7 -16.3 88 2.10 240 49 312.9 320.0 313.3
500.0 5560 -16.1 -18.2 84 1.83 240 49 313.4 319.6 313.7
474.0 5962 -19.1 -26.1 54 0.97 238 47 314.4 317.9 314.6
456.0 6251 -19.3 -26.3 54 0.99 236 46 317.7 321.2 317.9
434.0 6617 -23.7 -33.7 39 0.51 234 45 316.6 318.5 316.7
425.0 6770 -23.7 -33.7 39 0.53 233 44 318.5 320.5 318.6
419.0 6874 -25.9 -34.9 43 0.47 232 44 317.0 318.8 317.1
400.0 7210 -28.3 -37.3 42 0.39 230 43 318.1 319.6 318.2
398.0 7246 -28.5 -37.4 42 0.39 230 43 318.4 319.8 318.4
380.0 7576 -30.1 -38.1 46 0.38 229 45 320.4 321.9 320.5
361.0 7937 -35.3 -41.3 54 0.29 227 48 318.2 319.3 318.3
343.0 8291 -37.7 -42.7 59 0.26 226 50 319.6 320.6 319.7
332.0 8515 -38.3 -43.3 59 0.25 225 52 321.8 322.8 321.9
329.0 8577 -39.0 -44.2 58 0.23 225 52 321.6 322.5 321.7
314.0 8894 -42.9 -48.9 52 0.14 230 54 320.6 321.1 320.6
300.0 9200 -44.5 -49.5 57 0.14 235 56 322.5 323.1 322.6
261.0 10121 -51.7 -56.7 55 0.07 235 66 325.1 325.3 325.1
254.0 10297 -52.3 -57.3 55 0.06 235 68 326.6 326.9 326.7
250.0 10400 -52.7 -57.7 55 0.06 235 68 327.6 327.9 327.6
239.0 10689 -54.4 -59.3 54 0.05 240 66 329.2 329.5 329.2
236.0 10770 -54.9 -59.8 54 0.05 240 66 329.7 329.9 329.7
235.0 10797 -56.3 -61.3 53 0.04 240 66 328.0 328.2 328.0
208.0 11571 -56.1 -61.1 53 0.05 230 58 339.9 340.1 339.9
200.0 11820 -56.1 -61.1 53 0.05 240 56 343.8 344.0 343.8
195.0 11983 -55.8 -60.9 53 0.05 250 54 346.8 347.1 346.8
170.0 12865 -53.9 -59.5 50 0.07 245 43 363.8 364.2 363.8
154.0 13500 -52.5 -58.5 48 0.09 261 34 376.6 377.0 376.6
150.0 13670 -53.3 -59.3 48 0.09 265 31 378.0 378.5 378.1
148.0 13756 -53.4 -59.4 47 0.09 265 29 379.4 379.8 379.4
118.0 15209 -54.1 -61.3 41 0.08 245 21 403.3 403.8 403.4
103.0 16080 -54.6 -62.5 37 0.08 280 25 418.4 418.9 418.4
100.0 16270 -54.7 -62.7 36 0.08 275 23 421.8 422.2 421.8
91.0 16873 -54.3 -62.3 37 0.10 250 19 434.1 434.7 434.1
71.0 18459 -53.2 -61.2 37 0.14 255 10 468.4 469.3 468.4
70.0 18550 -53.1 -61.1 37 0.15 260 10 470.4 471.3 470.5
61.0 19438 -53.9 -62.6 34 0.14 310 12 487.5 488.4 487.6
57.0 19875 -54.3 -63.3 32 0.13 235 12 496.1 497.0 496.2
55.0 20105 -54.0 -63.0 32 0.14 195 12 501.9 502.8 501.9
50.0 20720 -53.3 -62.3 33 0.17 265 12 517.4 518.6 517.5
49.0 20850 -53.3 -62.3 32 0.18 285 12 520.5 521.8 520.6
37.0 22664 -52.6 -63.0 28 0.22 285 6 565.6 567.2 565.6
32.0 23602 -52.3 -63.3 26 0.24 350 10 590.4 592.3 590.5
31.4 23724 -52.3 -63.3 25 0.24 18 9 593.7 595.6 593.8
30.0 24020 -51.5 -62.5 26 0.28 85 6 603.6 605.9 603.7
29.0 24241 -51.4 -62.4 26 0.30 130 4 609.8 612.2 609.9
25.0 25208 -51.0 -62.0 26 0.37 115 8 637.4 640.5 637.6
22.8 25808 -50.7 -61.7 26 0.42 83 8 655.2 658.8 655.4
22.0 26042 -49.6 -61.0 25 0.47 70 8 665.3 669.5 665.5
21.0 26348 -48.1 -60.1 24 0.55 80 10 678.6 683.6 678.9
20.0 26670 -47.9 -59.9 24 0.60 90 12 688.8 694.2 689.0
19.0 27015 -47.2 -59.4 24 0.67 100 12 701.1 707.3 701.4
15.0 28604 -44.0 -56.8 23 1.17 90 16 760.8 772.3 761.3
13.0 29566 -42.1 -55.3 22 1.63 105 12 799.2 816.0 800.0
11.0 30689 -39.8 -53.5 22 2.39 55 10 846.5 872.5 847.7
10.0 31330 -38.5 -52.5 21 2.97 95 19 874.7 908.0 876.2
9.8 31469 -38.3 -52.3 22 3.11 880.5 915.5 882.1


есть не много вот такой код, н он просто читает и записывает в массив(( , не знаю как разделить, если подскажете то можно код мах простой пжл
s = []
f = open('dosta.txt',mode = 'r',encoding = 'latin_1')
for line in f:
I=float(line)
s.append(I)
A = 1 + I
print(A)
f.close()

спасибо большое, видимо нет в перво потому что нет данных , я новичок в pythone мой грубо говоря первый язык. Я правильно понимаю, что по вашему коду у меня три списка получается? т.е. 1,2 и 3 ий столбец записан в массив?

Ну да. На каждом шаге в data получаются числа одной строки.
А как уж их рассовывать по массивам - Вам виднее, я не совсем понимаю, что каждое из этих чисел означает

Читайте также: