通过使用基本蟒数据结构
这是数据(连同元值)是如何自定义数据结构:
- 有许多有若干行文件。所以,我们为每行分配一个名称。说
line1
- 每一行都将有几个号码,每次都会有一些属性。
现在,
- 我们构建一个
list
,其中有许多tuples
在文件中的行数。
- 每个元组的第一个元素是
TupleName
和第二元件是一个list
存储数字数据
- 在第二元件,有尽可能多的元组作为连续的数字。其中每个元组包括
number
和属性dict
。
例子:
data_structure = [ ("line1", [ ("num1", {"attr1" : value, "attr2" : value, }),
("num2", {"attr1" : value, }),
("num3", {}),
]
),
("line2", [ ("num1", {"attr1" : value, "attr2" : value, }),
("num2", {"attr1" : value, "attr2" : value, }),
]
),
("line3", [ ("num1", {"attr1" : value, "attr2" : value, }),
],
]
这显然是一个复杂的外观。然而,正如我们现在标准化的数据结构,我们可以写一个class
限定用于添加,删除或编辑attributes
或numbers
或lines
方法。最重要的部分是,确保您编写一个方法,通过文件对象创建我们的数据结构。
现在,你从复杂性中解放出来。
您可以使用lists
而不是tuples
,但我只是为了不干扰我们定义的数据结构而添加的。
样例类
可能是原始的,但它应该告诉你什么,我其实是想解释
class data (object):
def __init__(self, file_name):
self.file_name = file_name
self.data = open(self.file_name, "r").readlines()
# The Data Str
self.ds = self.makeDS()
def getNumList(self, line_count):
return self.data[line_count][:-1].split()
def makeDS (self):
ds = []
for eachLine in self.data:
line_count = self.data.index(eachLine)
num_list = self.getNumList(line_count)
eachLine_num_data = []
for aNum in num_list:
num_attr = {}
eachLine_num_tuple = (aNum, num_attr)
eachLine_num_data.append(eachLine_num_tuple)
eachLine_tuple = (line_count, eachLine_num_data)
ds.append(eachLine_tuple)
return ds
def getAttr (self, line_count, num_count):
attr = self.ds[line_count][1][num_count]
return attr
def add_attr (self, line_count, num_count,
attr_name, attr_value):
attr = self.ds[line_count][1][num_count][1]
attr[attr_name] = attr_value
o = data("file.txt")
o.add_attr(0,0,"name", "value")
print o.getAttr(0, 0)
输出
>>> ('2', {'name': 'value'})
如何申请y属性
这有点复杂(不完全)。标准文本文件不支持(下划线,粗体,斜体等)功能。 .docx
或任何其他格式更可能是格式的openXML
格式。你需要知道如何使用它们来应用关于属性。
“*下划线*” - 它应该是什么样子? – eumiro 2012-07-24 13:45:01
欢迎来到Stack Overflow!我们鼓励你[研究你的问题](http://stackoverflow.com/questions/how-to-ask)。如果你已经[尝试了某些东西](http://whathaveyoutried.com/),请将其添加到问题中 - 如果没有,请先研究并尝试您的问题,然后再回来。 – 2012-07-24 13:45:08
有很多选择,取决于你想要对你的数据做什么:列表,Numpy,SQL,... – 2012-07-24 13:48:32