2014-03-05 73 views
3

文件中的數據如下所示;兩列需要表示X和Y值。該值中的第一個值是X值,第二個值是Y值。我需要讀入一個帶有python數據的文本文件,並將數據分配給變量

42.10  8.55 
    40.25  7.60 
    38.50  8.95 
    39.55  6.45 
    40.90  7.75 

我需要將其讀入蟒並分配變量以每一組中的每一行的值: 例如,(42.10,8.55),其中42.10是x值和8.55是y值。有幾種價值觀需要這種組織。我可以打開文件並讀取它,但是我無法獲得我想要的變量賦值。

到目前爲止,我

with open ("file.txt", "r") as myfile: 
    data=myfile.read().split() 

好了,所以現在這裏是我在哪裏現在:

with open('file.txt') as f: 
    data = [line.split() for line in f.readlines()] 
    out = [(float(x), float(y)) for x, y in data] 
for i in out: 
    print i 

我想在for循環,創建數據的散點圖,其模塊你會推薦?

+3

告訴我們你有什麼打開該文件,並在閱讀它,並闡明你是什麼意思獲取你想要的變量賦值。 – mhlester

+0

with open(「file.txt」,「r」)as myfile: data = myfile.read()。split() – Astronerd326

+1

[編輯]你的問題。不要將它作爲註釋添加 – mhlester

回答

1

dataout都在這裏與list comprehensions的:

with open('text.txt') as f: 
    data = [line.split() for line in f.readlines()] 
    out = [(float(k), float(v)) for k, v in data] 

輸出:

for i in out: 
    print i 

(42.1, 8.55) 
(40.25, 7.6) 
(38.5, 8.95) 
(39.55, 6.45) 
(40.9, 7.75) 

,如果你想您可以將這些變量,或者你可以參考out[0]等。

你如何去命名它們都取決於你有多少,但這裏是無論如何一個例子:

>>> first_tuple = out[0] 
>>> print first_tuple 
(42.1, 8.55) 
+0

這是偉大的,這是我正在努力!我不能爲我的生活獲得兩列來配對行。 – Astronerd326

+0

圖騰,現在我有座標,我可以取代印刷我與情節我嗎?基本上我想用座標創建一個散點圖。 – Astronerd326

+0

當你說陰謀時,你的意思是什麼?你使用任何特定的模塊等創建圖形? – Totem

3
data = [] 
for line in open(myfile).readlines(): 
     temp_x,temp_y = line.split() 
     x = float(temp_x) 
     y = float(temp_y) 
     data.append((x,y)) 

你可以更好看,但這是你需要開始的一切。

你只能得到x和y最近值的原因是因爲x和y在循環的每次迭代中都會改變它們的值。要查看所有值

for each_pair in data: 
    (x, y) = each_pair 
    print 'X = ',x, 'Y = ', y 
+0

我現在更關心這個概念而不是「美麗」,謝謝PyNEwbie。 – Astronerd326

+0

好吧我有一個問題要跟進的代碼。當我打印x並打印y時,它給了我第一行數字的值。我需要做些什麼才能讓剩餘的x和y值返回? – Astronerd326

相關問題