1
0

clean.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import sqlite3
  2. import os, glob
  3. conn = sqlite3.connect("mindoc.db")
  4. cur = conn.cursor() #通过建立数据库游标对象,准备读写操作
  5. cmd = """
  6. SELECT
  7. att.http_path
  8. FROM
  9. md_attachment AS att
  10. WHERE (att.document_id != 0 OR (NOT EXISTS( SELECT 1 FROM md_documents WHERE markdown LIKE ("%" || att.http_path || "%"))))
  11. AND (att.document_id = 0 OR (NOT EXISTS( SELECT 1 FROM md_documents WHERE att.document_id = document_id )))
  12. """
  13. cur.execute(cmd)
  14. file_list = cur.fetchall()
  15. for file_item in file_list:
  16. item_path = file_item[0]
  17. # 1. 删除os文件
  18. if os.path.exists(os.path.join("..", item_path[1:])):
  19. os.remove(os.path.join("..", item_path[1:]))
  20. # 2. 查询os是否删除成功,成功则删除附件记录
  21. if not os.path.exists(os.path.join("..", item_path[1:])):
  22. cmd = """
  23. delete
  24. from md_attachment
  25. WHERE http_path = '{}'
  26. """.format(item_path)
  27. cur.execute(cmd)
  28. conn.commit() #保存提交,确保数据保存成功
  29. conn.close() #关闭与数据库的连接