利用python操作SQLite数据库及文件操作详解


Posted in Python onSeptember 22, 2017

前言

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中使用中文的方法
Feb 19 Python
python输出指定月份日历的方法
Apr 23 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
Python正则表达式知识汇总
Sep 22 #Python
python3实现全角和半角字符转换的方法示例
Sep 21 #Python
python实现二分查找算法
Sep 21 #Python
分享给Python新手们的几道简单练习题
Sep 21 #Python
python验证码识别的示例代码
Sep 21 #Python
Python优先队列实现方法示例
Sep 21 #Python
python虚拟环境virtualenv的安装与使用
Sep 21 #Python
You might like
一个目录遍历函数
2006/10/09 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
简单谈谈python中的lambda表达式
2018/01/19 Python
Python单元测试简单示例
2018/07/03 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
后勤工作职责
2013/12/22 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL
Go归并排序算法的实现方法
2022/04/06 Golang