当前位置:   article > 正文

python操作SQLite数据库和文件操作

python sqlite 驱动文件

最近遇到一个需求,就是要把SQLite数据中没有存储的文件名的文件删除掉,想来想去还是决定用python。所以也就花了一天半的时间学习了下,随手写了个小例子。
直接上代码

要用到的头文件包

  1. #coding=utf-8
  2. #!/usr/bin/python
  3. #!/usr/bin/env python
  4. import os
  5. import shutil
  6. import sqlite3

定义记录变量

  1. #记录所文件数
  2. sumCount=0;
  3. #记录留存文件数
  4. count=0;
  5. #记录删除文件数
  6. delCount=0;
  7. #定义存储遍历所有文件数组
  8. delList = []
  1. #文件存储路径
  2. delDir = "/Users/liudengtan/Desktop/testFile/"
  3. #获取路径下所有文件
  4. delList = os.listdir(delDir)
  5. #打开连接数据库
  6. conn = sqlite3.connect('images.db')
  7. print "开始处理...";

把文件目录下的所有文件与数据库的存的对比,如果文件在数据中,就存留,否则删除文件

  1. #遍历
  2. for f in delList:
  3. #获取到文件路径
  4. filePath = os.path.join(delDir, f)
  5. if os.path.isfile(filePath):
  6. sumCount=sumCount+1
  7. #将文件全路径中存储路径替换,只留文件名
  8. fileName=filePath.replace(delDir,'')
  9. #数据库查看当前文件名是否存在
  10. cursor = conn.execute("SELECT image FROM '表名' where image=(?)",(fileName))
  11. res = cursor.fetchall()
  12. #条件判断>0文件存在
  13. if len(res) > 0:
  14. count = count + 1;
  15. else:#文件不存在将其删除
  16. if os.path.isfile(delDir + fileName):
  17. #删除文件操作
  18. os.remove(delDir + fileName)
  19. print delDir + fileName + " 删除!"
  20. delCount = delCount + 1;
  21. #关闭数据库
  22. conn.close()
  23. print "处里结束:";
  24. print "所有文件总数 : ",sumCount;
  25. print "删除文件数 : ",delCount;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/891505
推荐阅读
相关标签
  

闽ICP备14008679号