利用python操作SQLite數據庫及文件操作詳解

分類:IT技術 時間:2017-09-26

前言

最近在工作中遇到一個需求,就是要把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 刪除

文章來源:


ads
ads

相關文章
ads

相關文章

ad