|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2020, 13:27 | #1 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Считывание чисел из файла в списки
Здравствуйте, народ
Взялся тут изучить основы Питона, и вот такой вот новичковский вопрос возник о записи и считывании данных из файла. Типовым случаем предполагается наличие файла на две колонки чисел. Порывшись в интернетах, составил из надерганных оттуда кусочков такую вот программку. Код:
|
13.01.2020, 16:26 | #2 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
С именоваными параметрами удобнее работать через словарь, а не через списки. В итоге получим список словарей [{'x': 1, 'y': 1}, ...]. Так же этот словарь мы используем как буфер, когда надо наполняем, когда надо чистим, затем вновь наполняем. Ну и повторяющиеся операции выносим в функции. Работу со строками я выполнил через f-строки, можно использовать форматирование строки через метод ''.format(), это удобнее и читабельнее чем просто использовать конкатенацию строк через + и приведение типа str().
Кода меньше не стало, но, мне кажется, теперь этот код понятнее и удобнее для поддержания. Код:
Код:
Последний раз редактировалось Arkuz; 13.01.2020 в 16:37. |
13.01.2020, 19:50 | #3 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Спасибо, будем изучать
Но все же - можно ли как-то сразу считать в два списка? Последний раз редактировалось archerix; 14.01.2020 в 10:02. |
14.01.2020, 12:14 | #4 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Ага, так можно записать, с f-строками как-то красивше.
Код:
Код:
Последний раз редактировалось archerix; 14.01.2020 в 12:23. |
14.01.2020, 12:52 | #5 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Вот так вроде считалось за раз.
Код:
Последний раз редактировалось archerix; 14.01.2020 в 13:00. |
14.01.2020, 18:10 | #6 | ||
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
А как по другому?
Если есть 2 массива и строка из файла. Строку надо считать, распарсить и положить в каждый из массивов. Если работа с файлами используется только в учебных целях, то все эти потуги понятны. )) А вообще можно сразу сохранять и читать в json, xml, csv и для этого есть готовые библиотеки. Так же можно самому реализовать механизмы сохранения и загрузки из файла данных как object. Фишка в том, что не надо будет циклами проходить и сохранять все значения. Вы будете в одну команду сохранять файл и в одну команду загружать его. И работать потом уже ни как с массивами, а как с объектом. И списки это не очень хорошая идея. Сейчас у вас 2 параметра x и y. А если их будет 20? Делать 20 списков? ))) Поэтому я предложил альтернативный вариант на словарях. Цитата:
Цитата:
В функцию write надо передать строку, а функция read возвращает строку. Последний раз редактировалось Arkuz; 14.01.2020 в 18:30. |
||
14.01.2020, 18:44 | #7 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Просто так привычнее - я всю жизнь в Фортране и С массивы использовал, а тут все как-то не так И там и там такие файлы читаются одной строчкой и ничего парсить не надо.
До этих специфических форматов файлов дело вряд ли дойдет, скорее всего мне ничего не потребуется, кроме чтения чисел из тектового файла на 2-3 колонки. |
14.01.2020, 18:59 | #8 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
Ну как вам будет удобнее.
Рекомендую посмотреть на CSV (https://python-scripts.com/import-csv-python). |
15.01.2020, 15:08 | #9 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
archerix
Цитата:
Список приспособлен для хранения разнородных типов данных и не очень эффективен при реализации массива однотипных данных. У вас однотипные данные и поэтому вам нужны массивы. Посмотрите в сторону модуля numpy.
Как-то так, ...
|
|
15.01.2020, 16:57 | #10 |
Форумчанин
Регистрация: 13.09.2019
Сообщений: 119
|
Да нет, я так не подумал - был сильно удивлен, что в Питоне нет обычных массивов
Numpy обязательно надо будет поковырять, пока освоить хоть стандартные средства |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Считывание из файла чисел | dimon_snake | Общие вопросы C/C++ | 7 | 29.01.2016 15:47 |
С++ Считывание чисел из файла с расширением .txt | Gared | Помощь студентам | 2 | 18.09.2011 16:11 |
Считывание чисел из файла в массив | rubakKa | Общие вопросы C/C++ | 11 | 02.12.2010 21:55 |
Считывание с файла отрицательных чисел | trinki | Общие вопросы C/C++ | 2 | 01.10.2010 01:39 |