利用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的类方法和静态方法
Dec 13 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
浅谈Python单向链表的实现
Dec 24 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 Python
Python虚拟环境项目实例
Nov 20 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
python主要用于哪些方向
Jul 05 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
使用PHP数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
python实现简单名片管理系统
2018/11/30 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python面向对象进阶学习
2019/05/21 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python文件操作基础流程解析
2020/03/19 Python
优秀研究生自我鉴定
2013/12/04 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
社区国庆节活动方案
2014/02/05 职场文书
小学生评语集锦
2014/04/18 职场文书
环境整治工作方案
2014/05/18 职场文书
大学课外活动总结
2014/07/09 职场文书
批评与自我批评总结
2014/10/17 职场文书
房产公证书
2015/01/23 职场文书
经典祝酒词大全
2015/08/12 职场文书
2016高考寄语集锦
2015/12/04 职场文书
小学教代会开幕词
2016/03/04 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android
js不常见操作运算符总结
2021/11/20 Javascript
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android
MySQL新手入门进阶语句汇总
2022/09/23 MySQL