Python は、ディスク領域の使用状況の監視、sqllite データベースの読み取り、データベースのコンテンツと保存された画像データの同期削除を実装します。

import shutil
# 导入sqlite3模块
from sqlite3 import Error
import sqlite3
import os
import time

def run():
    while True:
        time.sleep(1)
        gb = 1024 ** 3  # GB == gigabyte
        total_b, used_b, free_b = shutil.disk_usage('/data')  # 查看磁盘的使用情况
        s = (used_b) / (total_b ) 
        # print(s)
        r = s-0.5
        print(s,r)
        if s > 0.4:
            # try-except:防止因连接失败导致程序崩溃
            try:
                # 数据库文件路径
                db_file = '/data/ai_box/config/ai_box.db'
                # 连接数据库
                conn = sqlite3.connect(db_file)
                # 创建游标
                cour = conn.cursor()
                # 测试是否连接成功 
                print('连接成功')
                # 查询语句sql:select 列名(*-所有列) from 表名 [where 条件] 
                sql = 'select save_img_path from warning_logs '
                # 执行sql语句 
                cour.execute(sql) 
                # 打印查询结果 
                # print() 
                data = cour.fetchall() 
                need_del = data[:int(len(data)*(0.02))] 
                print(need_del)
                print(len(need_del))
                sql1 = 'delete from warning_logs where save_img_path=?' 
                cour.executemany(sql1,need_del) 
                conn.commit()
                
                for i in need_del:
                    try:
                        os.remove('/data/ai_box/results/{}'.format(i[0]))
                        # print(i[0])
                    except:
                        continue
                # 关闭游标 
                cour.close() 
                # 关闭连接 
                conn.close() 
            except Error as e:
                print('连接失败') 
run()

おすすめ

転載: blog.csdn.net/weixin_45755332/article/details/132762573