通過使用基本蟒數據結構
這是數據(連同元值)是如何自定義數據結構:
- 有許多有若干行文件。所以,我們爲每行分配一個名稱。說
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