我將根據信息創建統計信息哪些構建是否成功以及每個項目有多少。組織用於處理統計信息的Python代碼
我創建ProjectStat類每個新項目我看到和內部處理的統計信息。爲了打印整體統計信息,我需要通過所有ProjectStat實例。爲了打印每個項目的成功統計數據,我需要再次通過它們,以此類推。我的問題是簡化處理循環的方式,即不要每次都傳遞字典。也許使用裝飾器或裝飾器模式會是pythonic方式?那麼如果動態更改ProjectStat實例的數量,那麼它們可以如何使用?
下面是代碼:
class ProjectStat(object):
projectSuccess = 0
projectFailed = 0
projectTotal = 0
def addRecord(self, record):
if len(record) == 5: record.append(None)
try:
(datetime, projectName, branchName, number, status, componentName) = record
except ValueError:
pass
self.projectTotal += 1
if status == 'true': self.projectSuccess += 1
else: self.projectFailed += 1
def addDecorator(self, decorator):
decorator = decorator
def readBuildHistoryFile():
dict = {}
f = open("filename")
print("reading the file")
try:
for line in f.readlines():
#print(line)
items = line.split()
projectName = items[1]
projectStat = dict[projectName] = dict.get(projectName, ProjectStat())
projectStat.addRecord(items)
print(items[1])
finally:
f.close()
success = 0
failed = 0
total = 0
for k in dict.keys():
projectStat = dict[k]
success += projectStat.projectSuccess
failed += projectStat.projectFailed
total += projectStat.projectTotal
print("Total: " + str(total))
print("Success: " + str(success))
print("Failed: " + str(failed))
if __name__ == '__main__':
readBuildHistoryFile()
你能修好縮進嗎? – 2009-12-16 09:27:04
它是什麼?這是我的第一篇文章,我所做的只是複製,因爲它是由接口允許的。我如何在頁面上的代碼中將選項卡指定爲選項卡? – yart 2009-12-16 12:24:08