Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 0
  0   
								
								здравствуйте, извините за ламерский вопрос, просто с 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Офлайн
 
							 13
  13   
								
								Цикл for word in words лишний. Достаточно n1, n2 = line.split()
Офлайн
 
							 36
  36   
								
								нет сил пинать, извините. попробуйте следующий код:
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]
Офлайн
 
							 0
  0   
								
								большое спасибо, помогло))
Офлайн
 
							 253
  253   
								
								Я делаю несколько иначе
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)
Отредактировано (Окт. 7, 2010 20:54:29)
Офлайн
 
							 0
  0   
								
								да, конечно, но мне не просто нужно построить по этим данным график, а сначала отбработать их методом сплайнов. У нас на парах в универе делают на fortran - е + gnuplot, а я вот решил заморочиться с питоном))) и спасибо за помощь..)
Офлайн
 
							 253
  253   
								
								рад был помочь
Код:
from scipy.interpolate import UnivariateSpline
spline = UnivariateSpline(data(:,0),data(:,1),s=1)
v=spline(3.5) 
:)
питон люблю за большое число запчастей.
Отредактировано (Окт. 9, 2010 17:47:15)
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)