python三酷貓 三酷貓自建檔案資料庫

2021-10-18 14:23:42 字數 3949 閱讀 2129

一 設計思想

採用資料庫設計思路,設計簡易的 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的蘋果手機助手。酷...