摘要:最近遇到一個(gè)需求,就是要把數(shù)據(jù)中沒(méi)有存儲(chǔ)的文件名的文件刪除掉,想來(lái)想去還是決定用。所以也就花了一天半的時(shí)間學(xué)習(xí)了下,隨手寫(xiě)了個(gè)小例子。
最近遇到一個(gè)需求,就是要把SQLite數(shù)據(jù)中沒(méi)有存儲(chǔ)的文件名的文件刪除掉,想來(lái)想去還是決定用python。所以也就花了一天半的時(shí)間學(xué)習(xí)了下,隨手寫(xiě)了個(gè)小例子。
直接上代碼
要用到的頭文件包
#coding=utf-8 #!/usr/bin/python #!/usr/bin/env python import os import shutil import sqlite3
定義記錄變量
#記錄所文件數(shù) sumCount=0; #記錄留存文件數(shù) count=0; #記錄刪除文件數(shù) delCount=0; #定義存儲(chǔ)遍歷所有文件數(shù)組 delList = []
#文件存儲(chǔ)路徑 delDir = "/Users/liudengtan/Desktop/testFile/" #獲取路徑下所有文件 delList = os.listdir(delDir) #打開(kāi)連接數(shù)據(jù)庫(kù) conn = sqlite3.connect("images.db") print "開(kāi)始處理...";
把文件目錄下的所有文件與數(shù)據(jù)庫(kù)的存的對(duì)比,如果文件在數(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ù)庫(kù)查看當(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ù)庫(kù) conn.close() print "處里結(jié)束:"; print "所有文件總數(shù) : ",sumCount; print "刪除文件數(shù) : ",delCount;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40849.html
摘要:在實(shí)際項(xiàng)目中,這么做肯定是不行的實(shí)際項(xiàng)目中不會(huì)使用內(nèi)存數(shù)據(jù)庫(kù),這種數(shù)據(jù)庫(kù)一般只是在單元測(cè)試中使用。接下來(lái),我們將會(huì)了解中單元測(cè)試的相關(guān)知識(shí)。 在上一篇文章,我們介紹了SQLAlchemy的基本概念,也介紹了基本的使用流程。本文我們結(jié)合webdemo這個(gè)項(xiàng)目來(lái)介紹如何在項(xiàng)目中使用SQLAlchemy。另外,我們還會(huì)介紹數(shù)據(jù)庫(kù)版本管理的概念和實(shí)踐,這也是OpenStack每個(gè)項(xiàng)目都需要做的...
摘要:?jiǎn)栴}用創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)。會(huì)得到大魔法師人族水元素暴風(fēng)雪輝煌光環(huán)時(shí)空傳送山丘之王人族風(fēng)暴之錘雷霆一擊重?fù)籼焐裣路惭Х◣熑俗逖讚舴胖鹞Щ瘌P凰圣騎士人族圣光圣盾神圣光環(huán)復(fù)活但是用通過(guò)操作的時(shí)候會(huì)報(bào)錯(cuò)。我想也許是和創(chuàng)建的數(shù)據(jù)庫(kù)格式不同造成的。 問(wèn)題 用 sqlite 2.8.17 創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù) heroes.db。其中創(chuàng)建了一個(gè)表 heroes,這張表中存儲(chǔ)的是魔獸爭(zhēng)霸中英雄的技能數(shù)據(jù)...
摘要:程序中最常用的莫過(guò)于關(guān)系型數(shù)據(jù)庫(kù)了,也稱(chēng)數(shù)據(jù)庫(kù)。對(duì)象是類(lèi)的實(shí)例,表示程序使用的數(shù)據(jù)庫(kù)。本文由發(fā)表于個(gè)人博客,采用自由轉(zhuǎn)載保持署名非商用禁止演繹協(xié)議發(fā)布。非商業(yè)轉(zhuǎn)載請(qǐng)注明作者及出處。本文標(biāo)題為插件系列本文鏈接為更多閱讀 簡(jiǎn)介 Web 開(kāi)發(fā)中,一個(gè)重要的組成部分便是數(shù)據(jù)庫(kù)了。Web 程序中最常用的莫過(guò)于關(guān)系型數(shù)據(jù)庫(kù)了,也稱(chēng) SQL 數(shù)據(jù)庫(kù)。另外,文檔數(shù)據(jù)庫(kù)(如 mongodb)、鍵值對(duì)數(shù)據(jù)...
摘要:,引言自帶一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)。作為后端數(shù)據(jù)庫(kù),可以搭配建網(wǎng)站,或者為網(wǎng)絡(luò)爬蟲(chóng)存儲(chǔ)數(shù)據(jù)。在一些場(chǎng)景下,網(wǎng)絡(luò)爬蟲(chóng)可以使用存儲(chǔ)采集到的網(wǎng)頁(yè)信息。爬蟲(chóng)打數(shù)機(jī)將在版本支持,不妨想想一下網(wǎng)絡(luò)爬蟲(chóng)與打數(shù)機(jī)連接在一起會(huì)怎樣。 showImg(https://segmentfault.com/img/bVyUfA); 1,引言 Python自帶一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)SQLite。這一數(shù)據(jù)庫(kù)使用S...
閱讀 1487·2021-11-16 11:44
閱讀 3301·2021-09-29 09:43
閱讀 636·2019-08-30 10:52
閱讀 954·2019-08-29 11:01
閱讀 3266·2019-08-26 11:47
閱讀 2903·2019-08-23 12:18
閱讀 1373·2019-08-22 17:04
閱讀 2062·2019-08-21 17:04