日常工作处理

下载、修改、计算md5、替换

#!/usr/bin/python3
# encoding=utf8
import re
from urllib.request import urlretrieve
import os
import hashlib
import urllib.parse

total=0
count=0
def cbk(a, b, c):  
    per = 100.0 * a * b / c  
    if per > 100:  
        per = 100  
    print ('%.2f%%' % per)
openURL = open (r"./url.txt")
NewopenURL=open("./data/NewopenURL.txt","w+")
os.system("cp ./url.txt ./data/updateurl.txt")
for URL in openURL:
    URL=URL.replace(",","\n")
    NewopenURL.write (URL)
    total=total+1
    
NewopenURL=open(r"./data/NewopenURL.txt")
for NewURL in NewopenURL:
    count=count+1
    NewURL=NewURL.rstrip("\n\r")
    image_name = re.findall((re.compile(r'panda\/(.*)')),NewURL)    #正则匹配获取url中图片名
    print (image_name[0])
    if os.path.exists('./old_img/'+str(image_name[0])):
        pass
    else:
      urlretrieve("http://panda-img.oss-eu-central-1.aliyuncs.com/panda/"+urllib.parse.quote_plus(str(image_name[0])), './old_img/'+str(image_name[0]), cbk)                       #保存文件名到old_img 文件夹
    image_ext = re.findall((re.compile(r'(\.[^.\\/:*?"<>|\r\n]+$)')),str(image_name[0]))       #获取文件名中文件后缀名
    with open("./old_img/"+str(image_name[0]), 'rb') as op:                     #计算文件的md5 值
        old_data = op.read()
    img_md5=hashlib.md5(old_data).hexdigest()                                       
    New_imagName= img_md5+str(image_ext[0])                              #生成新的文件名
    os.system('cp "./old_img/'+str(image_name[0])+ '" ./new_user_authentication_img/'+str(New_imagName))     #复制老图片到新的图片文件夹并命名为hash文件。
    with open("./new_user_authentication_img/"+str(New_imagName), 'rb') as np:           # 新文件与老文件进行md5对比,防止图片在整个过程中有所变更
        new_data = np.read()    
    Newimg_md5=hashlib.md5(new_data).hexdigest()   
    if str(img_md5)==str(Newimg_md5):
        print ("[Yes]新老文件一致"+"----第"+str(count)+"个图--总计:"+str(total)+"图")
    else:
        print ("[Err]文件出现异常")
    update_url = open('./data/updateurl.txt','a+',encoding='utf-8')
    os.system("sed -i  '' s/'"+str(image_name[0])+"'/"+str(New_imagName)+"/g  ./data/updateurl.txt")    #替换文本中老的文件名为新的md5文件名。
    update_url.close()
    
    
openID = open (r"./id.txt")
openupdateurl=open(r"./data/updateurl.txt")
finalsql=open("./user_authentication.sql","w+")
for id in openID:
        id=id.rstrip("\n\r")
        for updatesqlurl in openupdateurl:
            updatesqlurl=updatesqlurl.rstrip("\n\r")
            break
        finalsql.write("update user_authentication set id_card_pic = '" +str(updatesqlurl)+ "' where id = "+id+";\n\r")
    
 
'''
update user_authentication set id_card_pic = '这里填新的url' where id = 这里填表格里的id;
update user_information set user_id_card_front = '这里填新的user_id_card_front的url'  where user_info_id = 这里填表格里的user_info_id;
'''