Найти - Пользователи
Полная версия: Чтение пар чисел из файла
Начало » Python для новичков » Чтение пар чисел из файла
1
Rumato
здравствуйте, извините за ламерский вопрос, просто с python-ом только начинаю разбираться, впрочем как и вообще с программированием. Есть файл, где попарно распологаются данные - числа(в два столбца), по которым потом после обработки нужно строить график, нужно считать эти числа во вложенный список, состоящий из кортежей пар чисел. Как я понимаю нужно считать из файла данные - получится как-бы строковой тип данных, затем разбить их на строки, а потом строки разделить по два числа, т.к. всего да столбца, вот что я навоял, код неработает и я знаю, что так лучше не писать, подскажите, пожалуйста в чём ошибка и если вообще всё раскритикуете, то буду только благодарен.)
lines = open('/SPL11/c1.DAT',"r").readlines()
pairs = []
for line in lines:
words = line.split()
for word in words:
n1, n2 = word.split()
n1 = float(n1)
n2 = float(n2)
pair = (n1 , n2)
pairs.append(pair)
infile.close()
print pair
Ed
Цикл for word in words лишний. Достаточно n1, n2 = line.split()
pyuser
нет сил пинать, извините. попробуйте следующий код:
result = []
with open(...) as f:
for line in f:
result.append(map(float, line.split()))
## или короче
with open(...) as f:
result = [map(float, line.split()) for line in f]
если он делает т о, что Вам нужно, загляните в любой букварь по питону и все сразу станет понятно
Rumato
большое спасибо, помогло))
doza_and
Я делаю несколько иначе

import numpy
data = numpy.genfromtxt(“myfile.txt”)

см пример http://www.scipy.org/Cookbook/InputOutput
потом еще несколько строчек для рисования графика

import matplotlib.pyplot as plt
plt.plot(data,data)
plt.show()

Зачем изобретать велосипд - он уже есть и не один (в данном примере нужно поставить пакет matplotlib)
Rumato
да, конечно, но мне не просто нужно построить по этим данным график, а сначала отбработать их методом сплайнов. У нас на парах в универе делают на fortran - е + gnuplot, а я вот решил заморочиться с питоном))) и спасибо за помощь..)
doza_and
рад был помочь

Код:

from scipy.interpolate import UnivariateSpline
spline = UnivariateSpline(data(:,0),data(:,1),s=1)
v=spline(3.5)

:)

питон люблю за большое число запчастей.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB