2014-09-01 49 views
-1

我是Python新手,對於如何對數據文件進行排序並將項目正確存儲在文件中感到好奇。這裏是數據文件的一個例子。在Python中對文件中的數據進行排序

ITEM1 0.0 1.0

ITEM2 2.0 2.0

ITEM2 1.5 2.0

ITEM1 2.6 1.2

我想利用所有ITEM1的和所有ITEM2的,並將它們組分開並一起跟蹤每個項目的兩個值。我創建了一個類來存儲這些數據。

class myClass: 
    item_name = " " 
    x_val = 0.0 
    y_val = 0.0 

我已經變得開始有點

with open(fname, "r") as f: 
    content = f.readlines() 

,但我不能完全換我圍繞着如何使用這些線來構建我的課的頭。

如何從文件中讀取這些數據並妥善保存信息?

感謝您的幫助!

+2

您可以告訴我們您到目前爲止所嘗試的內容以及您遇到的位置問題? – Dannnno 2014-09-01 17:40:48

+0

我所嘗試過的所有內容都是用f:content = f.readlines()開放(fname)。我很難包裝我的頭如何把這些讀取的行,並將它們存儲爲myClass的一個實例。 – user3242611 2014-09-01 17:53:35

+5

我建議在嘗試這個之前,你會經歷一些使用python對象的教程。 – 2014-09-01 18:05:21

回答

0
class myClass(object): 

    def __init__(self, name, x, y): 
     self.name = name 
     self.x = x 
     self.y = y 

item1 = [] 
item2 = [] 
filename = "some_file.txt" 

with open(filename, "r") as f: 
    for line in f: 
     a = line.split() 
     name, x, y = a[0], a[1], a[2] 
     if name == "item1": 
      item1.append(myClass(name, x, y)) 
     elif name == "item2": 
      item2.append(myClass(name, x, y)) 
     else: 
      raise ValueError("Item is improperly named") 

爲了使用類有效,你需要一個構造函數(該__init__()方法)。這使您可以將參數傳遞給類並將它們存儲爲實例變量(name,xy)。然後遍歷文件的每一行,拆分行(基於空格),然後將myClass的實例添加到相應的列表中

相關問題