脚本宝典收集整理的这篇文章主要介绍了

【Python】批处理文件并插入到mysql数据库

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

问题

最近在项目的时候遇到一个头大的问题,客户手中有份人员名单和人员照片。需要把人员信息数据库表照片信息补全,就是说要将人员照片和数据库人员一一对应。起初项目小伙伴说要手动录入写一个头像上传的程序一个个上传人员照片。几百号人的数据说多也不多说少也不少,如果全部手动录入不说麻烦的问题,可能中途还容易出错。我看了一眼人员照片文件是以人名命名,正好和数据库人员数据REALNAME字段相对应。其次重复人名并不多大概几个而已,可以之后做单独处理。人生苦短我用python,何必自找苦吃呢

需要做什么

  1. t_users表中REALNAME和照片命名是对应关系
  2. 照片需要重命名为当时的时间戳
  3. t_users表IMGURL存入图片所在地址以及图片名称

python酸爽初体验

开始前需要先下载Image和Mysql支持库,Image库是需要下载安装PIL
PS:使用python2.7 pip安装mysql.connector库失败 最后去Oracle官网直接下载安装mysql.connector 瞬间爬坑 未知命令行安装为何失败

遍历文件执行代码(参考度娘)

#!/usr/bin/python #coding=utf-8 import os import os.path import time import mysql.connector import time rootdir = '/Users/julyyu/imgs/pics'    # 指明被遍历的文件夹  conn=mysql.connector.connect(user='root',password='xxx',host='xxx',database='xxx') c = conn.cursor() for parent,dirnames,filenames in os.walk(rootdir):    #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字     for filename in filenames:                        #输出文件信息         (name,extension) = filename.split(".")         print "filenameonly is:" + name  #输出图片名         if name:             newname = str(int(time.time())) + ".jpg" alt="【Python】批处理文件并插入到mysql数据库" title="【Python】批处理文件并插入到mysql数据库"  #时间戳命名             print "newname is:" + newname              os.rename(rootdir+"/"+filename , rootdir+"/"+newname) #对图片进行重命名             tempname = "/lzgl/" +  newname #数据库存入的图片路径             query = "update  t_users set IMGURL = '" + tempname +  "' where REALNAME = '" + name + "'"                   c.execute(query)             conn.commit()             time.sleep(2)  #防止时间戳重复 睡两秒 也可以睡0.5 这样处理会更快一些  c.close() conn.close()

之后又对图片进行了压缩操作 原图每张10+M的一寸照无法忍, 代码如下

#!/usr/bin/python #coding:utf-8 from PIL import Image  import os  #图片压缩批处理   def compressImage(srcPath,dstPath):       for filename in os.listdir(srcPath):           #如果不存在目的目录则创建一个,保持层级结构         if not os.path.exists(dstPath):                 os.makedirs(dstPath)                  #拼接完整的文件或文件夹路径         srcFile=os.path.join(srcPath,filename)         dstFile=os.path.join(dstPath,filename)         print srcFile         print dstFile          #如果是文件就处理         if os.path.isfile(srcFile):                  #打开原图片缩小后保存,可以用if srcFile.endswith(".jpg")或者split,splitext等函数等针对特定文件压缩             sImg=Image.open(srcFile)               w,h=sImg.size               print w,h             dImg=sImg.resize((w/2,h/2),Image.ANTIALIAS)  #设置压缩尺寸和选项,注意尺寸要用括号             dImg.save(dstFile) #也可以用srcFile原路径保存,或者更改后缀保存,save这个函数后面可以加压缩编码选项JPEG之类的             print dstFile+" compressed succeeded"          #如果是文件夹就递归         if os.path.isdir(srcFile):             compressImage(srcFile,dstFile)  if __name__=='__main__':       compressImage("/Users/julyyu/imgs/tempa","/Users/julyyu/imgs/temps") #压缩前的文件路径和压缩后的文件路径

参考资料

http://blog.csdn.net/u012234115/article/details/50248409

总结

以上是脚本宝典为你收集整理的

【Python】批处理文件并插入到mysql数据库

全部内容,希望文章能够帮你解决

【Python】批处理文件并插入到mysql数据库

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过