Information_storage.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import os
  2. class Database:
  3. def __init__(self,name):
  4. self.dir = rf'{os.getcwd()}/Database_dir/{name}.cotanDB'#创建保存文件
  5. self.file = open(self.dir,'r+' if os.path.exists(self.dir) else 'w+')
  6. self.id = 0
  7. self.name = name
  8. for _ in self.file.readlines():
  9. self.id += 1
  10. def __str__(self):
  11. return self.name
  12. def close(self):
  13. try:
  14. self.file.close()
  15. except:
  16. pass
  17. def add_new(self,data):
  18. data_str = str(self.id)
  19. for i in data:
  20. data_str += ',' + str(i)
  21. data_str += '\n'
  22. self.file.write(data_str)
  23. self.file.flush()
  24. self.id += 1
  25. def remove(self):
  26. self.file.close()
  27. os.remove(self.dir)
  28. def out_file(self,out_dir):
  29. with open(out_dir + fr'/{self.name}.contanDB','w') as f:
  30. with open(self.dir) as g:
  31. f.write(g.read())
  32. class DataBase_Home:# data base控制器
  33. def __init__(self):
  34. self.database = {}
  35. def add_DataBase(self,name):# 添加数据表
  36. self.database[name] = Database(name)
  37. def add_new(self,name,data):# 添加新内容
  38. database = self.database.get(name)
  39. if database == None:
  40. self.add_DataBase(name)
  41. database = self.database.get(name)
  42. database.add_new(data)
  43. def close(self,name):# 关闭数据表
  44. try:
  45. self.database[name].close()
  46. del self.database[name]
  47. except:
  48. pass
  49. def close_all(self):# 关闭所有数据表
  50. for i in self.database:
  51. self.database[i].close()
  52. self.database = {}
  53. def rm_dataBase(self,name):# 删除数据表
  54. self.database[name].remove()
  55. del self.database[name]
  56. def out(self,name,dir):# 输出数据表
  57. self.database[name].out_file(dir)
  58. def return_database(self):
  59. return list(self.database.keys())