Information_storage.py 2.3 KB

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