Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 23.06.2017, 21:49   #1
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,169
Репутация: 603
По умолчанию matplotlib, numpy и чтение / запись CSV-фалов

Столкнулся с такой проблемой:
Читаю файлы в формате CSV функцией csv2rec() и проверяю обращения к элементам массива. Это работает нормально.
Пишу этот же массив в файл функцией rec2csv().
Выдается ошибка:TypeError: a bytes-like object is required, not 'str'.
Содержимое читаемого файла:
Код:

avtor,title,year,note
Доля П.Г.,Введение в научный Python,2016,"Классы, оконные приложения"
Travis E.,Guide to NumPy,,Руководство
Мусин Д.,Самоучитель Python,2016,Язык Python

Листинг:
Код:

import numpy as np
import matplotlib.mlab as mlab
#
# читаем данные из CSV-файла
fin = 'C:\\Python36\\Work\\books.csv' 
with open(fin, 'rt') as infile:
    mas = mlab.csv2rec(fin, names = None)
#
# Пишем массив в csv-файл
fout = 'C:\\Python36\\Work\\books1.csv'
with open(fout, 'wb') as outfile:
    mlab.rec2csv(mas, outfile)

Если заменить режим открытия файла для записи: 'wb' --> 'wt', то файл создается, но с ошибкой. В конце строк комбинация символов CR CR LF.
По всей видимости должен остаться только CR, а CRLF добавляются поскольку пишется текстовый файл.
Получается, что необходимо изменить тип массива mas.
Как это надо сделать?
Поиск в сети и перевод документации дали нулевой результат.
PS: NumPy постольку, поскольку массив mas - это:
dtype((numpy.record, [('avtor', '<U9'), ('title', '<U25'), ('year', '<i4'), ('note', '<U26')]))
и с ним предполагается выполнять операции.
__________________
Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Старый 26.06.2017, 11:15   #2
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,169
Репутация: 603
По умолчанию

Ответ получен.
Проблема в реализации самой функции rec2csv().
Посоветовали установить pandas.
Pandas установил. В нем есть реализация массивов записей, как и в numpy (numpy в составе pandas).

Будем обучаться дальше ...
__________________
Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
NumPy и чтение/запись массива в файл ViktorR Python 8 08.09.2018 16:40
Python.matplotlib (Отобразить доверительные интервалы функции на графике) PIA111 Python 0 10.02.2016 20:11
чтение и запись в сокеты Voipp Общие вопросы по Java, Java SE, Kotlin 1 05.10.2013 03:23
чтение txt фалов Mihanches Общие вопросы Delphi 3 17.09.2010 11:42
Чтение фалов как текстовых Gerzs Общие вопросы Delphi 17 10.10.2009 14:34


03:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru