一 設計思想
採用資料庫設計思路,設計簡易的 xml 資料庫,來實現對資料的儲存和讀取。
(1)軟體通過index_database.xml檔案統一為軟體提供讀、寫服務。
(2)index_database.xml檔案詳細記錄了業務 xml 檔案內容。
(3)索引檔案和業務檔案構成了 cat_fish 資料庫。
二 **實現
建立通用的讀寫 xml 檔案類,然後通過類例項來實現業務資料操作。
2.1 建立讀寫 xml 檔案類 fishdb
(1)通過繼承 bulid_xml.py 裡的 buildnewxml 類來實現寫 xml 檔案。
build_xml.py 檔案**如下:
import sys
class buildnewxml(): # 自定義建立xml檔案類
def __init__(self,filename = none):
self.filename = filename
self.__get_f = none # 自定義隱含屬性(類內部使用)
def openfile(self): # 自定義開啟xml類函式openfile
if self.filename == none:
print('沒有提供檔名!請提供建立檔案的名稱!!!')
return false # 返回false並終止後續**繼續執行
try:
self.__get_f = open(self.filename,'a',encoding='utf-8') # 以追加寫入方式開啟乙個檔案,不存在則新建
except:
print('開啟%s檔案有問題!'%(self.filename))
return false
def writexml(self,n,element): # 自定義寫xml檔案內容函式
try:
if n==0:
self.__get_f.write(element+'\n') # 根元素寫入
else:
self.__get_f.write(' '*n+element+'\n') # 子元素寫入
except:
print('往%s檔案寫%s出錯!'%(self.filename,element))
sys.exit()
def clo***ml(self): # 自定義關閉檔案函式
if self.__get_f:
self.__get_f.close() # 關閉檔案
filename = "storehouse.xml"
flag = false # 判斷xml檔案操作是否正常標誌
content =
content2=
content3=
new_xml=fishdb() # 建立fishdb類例項
dbrecord= #索引記錄
def writedbrecord(dbr,no,filename,path,date,dbname): # 自定義記錄子節點內容
#********************寫入2023年1月1日的釣魚記錄
filename="fish_record1.xml"
new_xml.filename="\\"+filename # 類的檔名屬性
new_xml.path="d:\cat_fish" # 類的路徑屬性
new_xml.check_path() # 類呼叫check_path方法
flag=false
try:
new_xml.openfile() # 例項呼叫方法
for get_item in content1.items(): # 迴圈讀取要寫入的字典物件元素
new_xml.writexml(get_item[1][0],get_item[1][1])
flag=true
except:
print('檔案寫入錯誤,退出程式!')
sys.exit()
finally:
if flag: # 寫xml檔案正常
new_xml.clo***ml()
print('往%s寫內容完成!'%(filename))
writedbrecord(dbrecord,1,'fish_record1.xml','d:\cat_fish','2018-1-1','cat_fish')
#********************寫入2023年1月2日的釣魚記錄
filename="fish_record2.xml"
new_xml.filename="\\"+filename
new_xml.path="d:\cat_fish"
new_xml.check_path()
flag=false
try:
new_xml.openfile()
for get_item in content2.items():
new_xml.writexml(get_item[1][0],get_item[1][1] )
flag=true
except:
print('往檔案內容出錯,退出程式!')
sys.exit()
finally:
if flag:
new_xml.clo***ml()
print('往%s寫內容完成!'%(filename))
writedbrecord(dbrecord,2,'fish_record2.xml','d:\cat_fish','2018-1-2','cat_fish')
#********************寫入2023年1月3日的釣魚記錄
filename="fish_record3.xml"
new_xml.filename="\\"+filename
new_xml.path="d:\cat_fish"
new_xml.check_path()
flag=false
try:
new_xml.openfile()
for get_item in content3.items():
new_xml.writexml(get_item[1][0],get_item[1][1] )
flag=true
except:
print('往檔案內容出錯,退出程式!')
sys.exit()
finally:
if flag:
new_xml.clo***ml()
print('往%s寫內容完成!'%(filename))
writedbrecord(dbrecord,3,'fish_record3.xml','d:\cat_fish','2018-1-3','cat_fish')
#********************寫入索引記錄
filename="index_database.xml"
new_xml.filename="\\"+filename
new_xml.path="d:\cat_fish"
new_xml.check_path()
flag=false
try:
new_xml.openfile()
for get_item in dbrecord:
new_xml.writexml(get_item[0],get_item[1])
flag=true
except:
print('往檔案內容出錯,退出程式!')
sys.exit()
finally:
if flag:
new_xml.clo***ml()
print('往%s寫內容完成!'%(filename))
三 **執行結果
三酷貓學python python學習第7期
今日任務 1.求程式設計興趣小組活動投入 2.三酷貓的購物單 一 求程式設計興趣小組活動投入 某高校成立程式設計興趣活動小組,每個人的投入如下圖所示 要求 用適當資料型別記錄上述 內容,要求用上列表 元組物件 姓名中的 毛小 寫錯了,用 修改為 毛大 分別統計每位同學的投入金額,列印每位同學的投入金...
花花與三貓Catlive(hpu)
單點時限 1.0 sec 記憶體限制 512 mb 大佬 中分和 呆b 李白正在玩乙個遊戲,遊戲規則是這樣的 遊戲剛開始的時候,中分和李白相距l步,相對而望。老父親和老母親手中各有乙個m個面的均勻骰子。也就是說可以隨機生成 1,m 內的任意乙個數字,且概率均等 在每個回合開始的時候,老父親和老母親都...
酷貓手機助手 v2 0 官方正式版
酷貓手機助手 v2.0 官方正式版 軟體大小 25.9mb 軟體語言 簡體中文 軟體性質 常用軟體 應用平台 win8 win7 winxp 酷貓手機助手是一款免費的蘋果手機管理工具。酷貓手機助手可幫助使用者快速管理手機應用和檔案,支援無越獄安裝軟體,是一款完全可以比擬itunes的蘋果手機助手。酷...