前言
最近在工作中遇到一個需求,就是要把SQLite數據中沒有存儲的文件名的文件刪除掉,想來想去還是決定用python。所以也就花了一天半的時間學習了下,隨手寫了個小例子,下面話不多說了,感興趣的朋友們一起來看看詳細的介紹吧。
直接上代碼
要用到的頭文件包
#coding=utf-8 #!/usr/bin/python #!/usr/bin/env python import os import shutil import sqlite3
定義記錄變量
#記錄所文件數 sumCount=0; #記錄留存文件數 count=0; #記錄刪除文件數 delCount=0; #定義存儲遍歷所有文件數組 delList = []
#文件存儲路徑 delDir = "/Users/liudengtan/Desktop/testFile/" #獲取路徑下所有文件 delList = os.listdir(delDir) #打開連接數據庫 conn = sqlite3.connect('images.db') print "開始處理...";
把文件目錄下的所有文件與數據庫的存的對比,如果文件在數據中,就存留,否則刪除文件
#遍歷 for f in delList: #獲取到文件路徑 filePath = os.path.join(delDir, f) if os.path.isfile(filePath): sumCount=sumCount+1 #將文件全路徑中存儲路徑替換,只留文件名 fileName=filePath.replace(delDir,'') #數據庫查看當前文件名是否存在 cursor = conn.execute("SELECT image FROM '表名' where image=(",(fileName)) res = cursor.fetchall() #條件判斷>0文件存在 if len(res) > 0: count = count + 1; else:#文件不存在將其刪除 if os.path.isfile(delDir + fileName): #刪除文件操作 os.remove(delDir + fileName) print delDir + fileName + " 刪除!" delCount = delCount + 1; #關閉數據庫 conn.close() print "處裏結束:"; print "所有文件總數 : ",sumCount; print "刪除文件數 : ",delCount;
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對電腦玩物的支持。
Tags: 文件 路徑 件數 delDir quot 刪除
文章來源: