前言
最近在工作中遇到一個(gè)需求,就是要把SQLite數(shù)據(jù)中沒有存儲(chǔ)的文件名的文件刪除掉,想來想去還是決定用python。所以也就花了一天半的時(shí)間學(xué)習(xí)了下,隨手寫了個(gè)小例子,下面話不多說了,感興趣的朋友們一起來看看詳細(xì)的介紹吧。
直接上代碼
要用到的頭文件包
#coding=utf-8#!/usr/bin/python#!/usr/bin/env pythonimport osimport shutilimport sqlite3
定義記錄變量
#記錄所文件數(shù)sumCount=0;#記錄留存文件數(shù)count=0;#記錄刪除文件數(shù)delCount=0;#定義存儲(chǔ)遍歷所有文件數(shù)組delList = []
#文件存儲(chǔ)路徑delDir = "/Users/liudengtan/Desktop/testFile/"#獲取路徑下所有文件delList = os.listdir(delDir)#打開連接數(shù)據(jù)庫conn = sqlite3.connect('images.db')print "開始處理...";把文件目錄下的所有文件與數(shù)據(jù)庫的存的對比,如果文件在數(shù)據(jù)中,就存留,否則刪除文件
#遍歷for f in delList: #獲取到文件路徑 filePath = os.path.join(delDir, f) if os.path.isfile(filePath): sumCount=sumCount+1 #將文件全路徑中存儲(chǔ)路徑替換,只留文件名 fileName=filePath.replace(delDir,'') #數(shù)據(jù)庫查看當(dāng)前文件名是否存在 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;#關(guān)閉數(shù)據(jù)庫conn.close()print "處里結(jié)束:";print "所有文件總數(shù) : ",sumCount;print "刪除文件數(shù) : ",delCount;總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。
新聞熱點(diǎn)
疑難解答
圖片精選