利用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松散正则表达式用法分析
Apr 29 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
kali中python版本的切换方法
Jul 11 Python
Django密码系统实现过程详解
Jul 19 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python如何对齐字符串
Jul 30 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
zend api扩展的php对象的autoload工具
2011/04/18 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
名片管理系统python版
2018/01/11 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
物流专业大学生的自我鉴定
2013/11/13 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server