摘要:問題最近在項目的時候遇到一個頭大的問題,客戶手中有份人員名單和人員照片。需要把人員信息數(shù)據(jù)庫表照片信息補(bǔ)全,就是說要將人員照片和數(shù)據(jù)庫人員一一對應(yīng)。我看了一眼人員照片文件是以人名命名,正好和數(shù)據(jù)庫人員數(shù)據(jù)字段相對應(yīng)。
問題
最近在項目的時候遇到一個頭大的問題,客戶手中有份人員名單和人員照片。需要把人員信息數(shù)據(jù)庫表照片信息補(bǔ)全,就是說要將人員照片和數(shù)據(jù)庫人員一一對應(yīng)。起初項目小伙伴說要手動錄入寫一個頭像上傳的程序一個個上傳人員照片。幾百號人的數(shù)據(jù)說多也不多說少也不少,如果全部手動錄入不說麻煩的問題,可能中途還容易出錯。我看了一眼人員照片文件是以人名命名,正好和數(shù)據(jù)庫人員數(shù)據(jù)REALNAME字段相對應(yīng)。其次重復(fù)人名并不多大概幾個而已,可以之后做多帶帶處理。人生苦短我用python,何必自找苦吃呢
需要做什么t_users表中REALNAME和照片命名是對應(yīng)關(guān)系
照片需要重命名為當(dāng)時的時間戳
t_users表IMGURL存入圖片所在地址以及圖片名稱
python酸爽初體驗開始前需要先下載Image和Mysql支持庫,Image庫是需要下載安裝PIL
PS:使用python2.7 pip安裝mysql.connector庫失敗 最后去Oracle官網(wǎng)直接下載安裝mysql.connector 瞬間爬坑 未知命令行安裝為何失敗
遍歷文件執(zhí)行代碼(參考度娘)
#!/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): #三個參數(shù):分別返回1.父目錄 2.所有文件夾名字(不含路徑) 3.所有文件名字 for filename in filenames: #輸出文件信息 (name,extension) = filename.split(".") print "filenameonly is:" + name #輸出圖片名 if name: newname = str(int(time.time())) + ".jpg" #時間戳命名 print "newname is:" + newname os.rename(rootdir+"/"+filename , rootdir+"/"+newname) #對圖片進(jìn)行重命名 tempname = "/lzgl/" + newname #數(shù)據(jù)庫存入的圖片路徑 query = "update t_users set IMGURL = "" + tempname + "" where REALNAME = "" + name + """ c.execute(query) conn.commit() time.sleep(2) #防止時間戳重復(fù) 睡兩秒 也可以睡0.5 這樣處理會更快一些 c.close() conn.close()
之后又對圖片進(jìn)行了壓縮操作 原圖每張10+M的一寸照無法忍, 代碼如下
#!/usr/bin/python #coding:utf-8 from PIL import Image import os #圖片壓縮批處理 def compressImage(srcPath,dstPath): for filename in os.listdir(srcPath): #如果不存在目的目錄則創(chuàng)建一個,保持層級結(jié)構(gòu) 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等函數(shù)等針對特定文件壓縮 sImg=Image.open(srcFile) w,h=sImg.size print w,h dImg=sImg.resize((w/2,h/2),Image.ANTIALIAS) #設(shè)置壓縮尺寸和選項,注意尺寸要用括號 dImg.save(dstFile) #也可以用srcFile原路徑保存,或者更改后綴保存,save這個函數(shù)后面可以加壓縮編碼選項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
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40730.html
摘要:關(guān)系型數(shù)據(jù)庫有多種,如等等。一致性與原子性是密切相關(guān)的。持久性持續(xù)性也稱永久性,指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。如此一來,我們就可以實現(xiàn)主鍵不存在便插入數(shù)據(jù),存在則更新數(shù)據(jù)的功能了。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---31、數(shù)據(jù)存儲:文件存儲下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---33、數(shù)據(jù)存儲:非關(guān)系型數(shù)據(jù)庫存儲:MongoDB 關(guān)系型數(shù)據(jù)...
文中關(guān)鍵闡述了Python數(shù)據(jù)庫連接并批量插入包括時長記載的實際操作,文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實用價值,需用的同學(xué)可以學(xué)習(xí)一下 序言 服務(wù)平臺: windows10.0 python3.8 oracle mysql 目地 必須通過python建立模型,并把結(jié)論儲存至SQL數(shù)據(jù)庫系統(tǒng)中,其中還有某列數(shù)據(jù)信息為時長種類,在儲存全過程碰到一些現(xiàn)象,現(xiàn)就處理方式整...
摘要:操作數(shù)據(jù)庫要對數(shù)據(jù)庫進(jìn)行操作,需要先連接它。執(zhí)行后返回值為受影響的行數(shù)。執(zhí)行單條語句但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù)返回值為受影響的行數(shù)例如,要在數(shù)據(jù)表中插入一條記錄,使得,這樣做沒有報錯,并且返回一個結(jié)果,說明有一行記錄操作成功。 在上一講中已經(jīng)連接了數(shù)據(jù)庫。就數(shù)據(jù)庫而言,連接之后就要對其操作。但是,目前那個名字叫做qiwsirtest的數(shù)據(jù)僅僅是空架子,沒有什么可操作的,要操作它,就必...
摘要:一積累中如何快速查看包中的源碼最常用的大開發(fā)快捷鍵技巧將對象保存到文件中從文件中讀取對象中的用法的配置詳解和代碼的格式詳解格式化內(nèi)容設(shè)置生成詳解注釋規(guī)范中設(shè)置內(nèi)存調(diào)試的小知識單步執(zhí)行命令的區(qū)別的動態(tài)代理機(jī)制詳解內(nèi)容有瑕疵,樓指正泛型繼承的幾 一、積累 1.JAVA Eclipse中如何快速查看jar包中 的class源碼 最常用的15大Eclipse開發(fā)快捷鍵技巧 Java將對象保存到...
閱讀 2607·2021-10-14 09:43
閱讀 3566·2021-10-13 09:39
閱讀 3299·2019-08-30 15:44
閱讀 3149·2019-08-29 16:37
閱讀 3714·2019-08-29 13:17
閱讀 2740·2019-08-26 13:57
閱讀 1832·2019-08-26 11:59
閱讀 1253·2019-08-26 11:46