2014-09-01 68 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的实例添加到相应的列表中