国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Python】批處理文件并插入到mysql數據庫

jsummer / 1927人閱讀

摘要:問題最近在項目的時候遇到一個頭大的問題,客戶手中有份人員名單和人員照片。需要把人員信息數據庫表照片信息補全,就是說要將人員照片和數據庫人員一一對應。我看了一眼人員照片文件是以人名命名,正好和數據庫人員數據字段相對應。

問題

最近在項目的時候遇到一個頭大的問題,客戶手中有份人員名單和人員照片。需要把人員信息數據庫表照片信息補全,就是說要將人員照片和數據庫人員一一對應。起初項目小伙伴說要手動錄入寫一個頭像上傳的程序一個個上傳人員照片。幾百號人的數據說多也不多說少也不少,如果全部手動錄入不說麻煩的問題,可能中途還容易出錯。我看了一眼人員照片文件是以人名命名,正好和數據庫人員數據REALNAME字段相對應。其次重復人名并不多大概幾個而已,可以之后做多帶帶處理。人生苦短我用python,何必自找苦吃呢

需要做什么

t_users表中REALNAME和照片命名是對應關系

照片需要重命名為當時的時間戳

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"  #時間戳命名
            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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40730.html

相關文章

  • Python3網絡爬蟲實戰---32、數據存儲:關系型據庫存儲:MySQL

    摘要:關系型數據庫有多種,如等等。一致性與原子性是密切相關的。持久性持續性也稱永久性,指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。如此一來,我們就可以實現主鍵不存在便插入數據,存在則更新數據的功能了。 上一篇文章:Python3網絡爬蟲實戰---31、數據存儲:文件存儲下一篇文章:Python3網絡爬蟲實戰---33、數據存儲:非關系型數據庫存儲:MongoDB 關系型數據...

    ghnor 評論0 收藏0
  • Python據庫連接批量插入包括時長記載的實際操作

      文中關鍵闡述了Python數據庫連接并批量插入包括時長記載的實際操作,文章內容緊扣主題進行詳盡的基本介紹,具有很強的實用價值,需用的同學可以學習一下  序言  服務平臺:  windows10.0  python3.8  oracle  mysql  目地  必須通過python建立模型,并把結論儲存至SQL數據庫系統中,其中還有某列數據信息為時長種類,在儲存全過程碰到一些現象,現就處理方式整...

    89542767 評論0 收藏0
  • [零基礎學python]用Python操作據庫(1)

    摘要:操作數據庫要對數據庫進行操作,需要先連接它。執行后返回值為受影響的行數。執行單條語句但是重復執行參數列表里的參數返回值為受影響的行數例如,要在數據表中插入一條記錄,使得,這樣做沒有報錯,并且返回一個結果,說明有一行記錄操作成功。 在上一講中已經連接了數據庫。就數據庫而言,連接之后就要對其操作。但是,目前那個名字叫做qiwsirtest的數據僅僅是空架子,沒有什么可操作的,要操作它,就必...

    lolomaco 評論0 收藏0
  • 工具使用-積累與發現

    摘要:一積累中如何快速查看包中的源碼最常用的大開發快捷鍵技巧將對象保存到文件中從文件中讀取對象中的用法的配置詳解和代碼的格式詳解格式化內容設置生成詳解注釋規范中設置內存調試的小知識單步執行命令的區別的動態代理機制詳解內容有瑕疵,樓指正泛型繼承的幾 一、積累 1.JAVA Eclipse中如何快速查看jar包中 的class源碼 最常用的15大Eclipse開發快捷鍵技巧 Java將對象保存到...

    Lyux 評論0 收藏0

發表評論

0條評論

jsummer

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<