查询数据库信息,匹配数据,并且复制图片到指定文件夹

该博客介绍了如何在Python中连接数据库查询特定信息,匹配并复制图片到新建的文件夹。通过使用`pymysql`库连接数据库,正则表达式处理查询结果,`os`和`shutil`库进行文件操作,实现图片的查找与移动。
摘要由CSDN通过智能技术生成
#实现功能:在对方数据库中查询name,mortgage_infos,mortgage_contract信息,
# 匹配后两者中的图片数据,根据匹配得到路径信息在本机指定路径当中查找对应图片,
# 根据name创建文件夹
# 把找到的图片保存在新创建与数据库管联的目录下

import os,shutil,pymysql,re
def mkdir(path):
    # 去除首位空格
    path = path.strip()
    # # 去除尾部 \ 符号
    path = path.rstrip("\\")
    # 判断路径是否存在
    # 判断结果
    isExists = os.path.exists(path)

    if not isExists:
        # 如果不存在则创建目录
        # 创建目录操作函数
        os.makedirs(path)
        print(path + ' 创建成功')
        return True
    else:
        # 如果目录存在则创建加(2),并提示目录已存在
        i=1
        while True:
            isExists = os.path.exists(path)
            if isExists:
                i += 1
                path += str(i)
            else:
                os.makedirs(path)
                print(path + ' 创建成功')
                break
        # os.makedirs(path)
        print(path + ' 目录已存在改名')
                # break
        return True
# 定义要创建的目录
def validateTitle(title):
    rstr = r"[\/\\\:\*\?\"\<\>\|]"  # '/ \ : * ? " < > |'
    new_title = re.sub(rstr, "_", title)  # 替换为下划线
    return new_title

def main(target_dir_path):
    # 创建connection链接
    conn = pymysql.connect(host="对方ip",port=端口,database=名称,user="***",password="***",charset="utf8")
    # 获取游标Cursor对象
    cur = conn.cursor()
    count=cur.execute("select name,mortgage_infos,mortgage_contract from fanwe_deal")
    print(count)
    datas = cur.fetchall()
    for data in datas:
        ret=re.findall(r'public/(.*?)"', str(data))
        target_name = data[0]
        target_name = validateTitle(target_name)
        # target_name = target_name.replace('/', '\\')
        target_path = target_dir_path + '\\' + 'pic\\' + target_name
        mkdir(target_path)
        if ret:
            for path in ret:
                #获取在数据库中截取的单个图片路径
                # file_path=os.getcwd() + '\\' + path
                file_path=target_dir_path + '\\' + path
                #这个图片路径拼接成绝对路径 F:\****\attachment/201709/22/16/59c4ca777085c.JPG
                # 切割路径获取文件夹目录,文件名
                res=os.path.split(file_path)
                file_dir_path=res[0]#F:\*******\attachment/201709/22/16
                pic_name=res[1]#59c4ca777085c.JPG
                #判断该路径是否存在
                if os.path.exists(file_dir_path):
                    files_list = os.listdir(file_dir_path)
                    # 如果图片存在查找的目录下,判断图片是否在pic_files下,
                    # 如果不存在,复制该图片到当前路径下的新创建的pic_files目录下
                    if pic_name in files_list:
                        if pic_name not in os.listdir(target_path):
                            try:
                                shutil.copy(file_path, target_path)#复制文件到指定路径目录下
                            except :
                                pass
    conn.commit()
    cur.close()
    conn.close()
if __name__ == "__main__":
    target_dir_path='D:\****
    main(target_dir_path)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值