利用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中for循环下的索引变量的作用域
Apr 15 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
Python实现自动发送邮件功能
Mar 02 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Django 拆分model和view的实现方法
Aug 16 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
python cv2截取不规则区域图片实例
Dec 21 Python
python os模块在系统管理中的应用
Jun 22 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
基于Python实现的购物商城管理系统
Apr 27 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
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python实现批量修改文件名实例
2015/07/08 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python类中super() 的使用解析
2019/12/19 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
pytorch的batch normalize使用详解
2020/01/15 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
留学生求职信
2014/06/03 职场文书
新员工入职欢迎词
2015/01/23 职场文书
求职信格式范文
2015/03/19 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
2016入党心得体会范文
2016/01/06 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android