12345678910111213141516171819202122232425262728293031323334 |
- import sqlite3
- import os, glob
- conn = sqlite3.connect("mindoc.db")
- cur = conn.cursor() #通过建立数据库游标对象,准备读写操作
- cmd = """
- SELECT
- att.http_path
- FROM
- md_attachment AS att
- WHERE (att.document_id != 0 OR (NOT EXISTS( SELECT 1 FROM md_documents WHERE markdown LIKE ("%" || att.http_path || "%"))))
- AND (att.document_id = 0 OR (NOT EXISTS( SELECT 1 FROM md_documents WHERE att.document_id = document_id )))
- """
- cur.execute(cmd)
- file_list = cur.fetchall()
- for file_item in file_list:
- item_path = file_item[0]
- # 1. 删除os文件
- if os.path.exists(os.path.join("..", item_path[1:])):
- os.remove(os.path.join("..", item_path[1:]))
-
- # 2. 查询os是否删除成功,成功则删除附件记录
- if not os.path.exists(os.path.join("..", item_path[1:])):
- cmd = """
- delete
- from md_attachment
- WHERE http_path = '{}'
- """.format(item_path)
- cur.execute(cmd)
- conn.commit() #保存提交,确保数据保存成功
- conn.close() #关闭与数据库的连接
|