我是靠谱客的博主 开心火,最近开发中收集的这篇文章主要介绍python获取Oracle数据,并根据获取信息请求下载图片,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文Python脚本实现的功能:

  • 1. 循环表格列,根据表格中的某列值对应的相关信息;
  • 2. 使用 cx_Oracle 连接 Oracle 数据库,获取要请求的信息;
  • 3. 使用 urllib3 发送请求图片;
  • 4. 将请求的图片保存到本地;

1. 引入所需模块

import xlrd
import urllib3
import os
import cx_Oracle

2. 连接Oracle数据库

con = cx_Oracle.connect('Username/Password@IP:1521/LOCA')       # 链接数据库
cur = con.cursor() # 获取游标
 
……    # 中间为连接数据库的操作
 
cur.close() # 关闭游标
con.close() # 关闭链接

3. 从 Excel 读取字段值,循环读表,并根据该值从数据库获取其他值,存储于数组中

CSheet = xlrd.open_workbook(r'C:UsersAdministratorDesktop11.xlsx',encoding_override='utf-8')   # 需要导出图片的表格路径
data = CSheet.sheets()[0]
nrows = data.nrows
print(nrows)

SqlList = []

for i in range(1,nrows):
    hphm = data.row_values(i)[1]

    sql = "select * from t_table where type = 1 and hphm = '%s'"%(hphm)
    cur.execute(sql)
    SqlRes = cur.fetchall()
    print(len(SqlRes))
    for j in range(len(SqlRes)) :
        print(SqlRes[j])
        SqlList.append(SqlRes[j])

4. 循环数组,并将字段拼接成请求地址

for k in SqlList:
    print(k)
    url = "http://%s:%s/%s"%(k[4], k[5], k[3])              # 图片请求的url
    fileName = "%s_%s_%s.jpg"%(k[0], k[1], k[2])    # 图片保存文件名
    pathFile = "C:\Users\Administrator\Desktop\tag_pic\%s"%(fileName)

5. 请求图片,并将请求成功的图片保存本地

    http = urllib3.PoolManager()
    res = http.request('GET', url).data
    status = http.request('GET',url).status

    if status == 200 :
        with open (pathFile, "wb") as f :
            f.write(res)
    else :
        print("图片不存在")

下面是整个脚本代码:

import xlrd
import urllib3
import os
import cx_Oracle

con = cx_Oracle.connect('Username/Password@IP:1521/LOCA')
cur = con.cursor()

CSheet = xlrd.open_workbook(r'C:UsersAdministratorDesktop11.xlsx',encoding_override='utf-8')   # 需要导出图片的表格路径
data = CSheet.sheets()[0]
nrows = data.nrows
print(nrows)

SqlList = []

for i in range(1,nrows):
    hphm = data.row_values(i)[1]
    hphm = ''.join(filter(lambda c:ord(c)<256, hphm))   # 去除汉字

    sql = "select * from t_table where type = 1 and hphm = '%s'"%(hphm)
    cur.execute(sql)
    SqlRes = cur.fetchall()
    print(len(SqlRes))
    for j in range(len(SqlRes)) :
        print(SqlRes[j])
        SqlList.append(SqlRes[j])

a = os.path.exists('C:\Users\Administrator\Desktop\pic')    # 导出图片路径,检测如果不存在则创建
if a == False :
    os.mkdir('C:\Users\Administrator\Desktop\pic')
else :
    print(a)

for k in SqlList:
    print(k)
    url = "http://%s:%s/%s"%(k[4], k[5], k[3])              # 图片请求的url
    fileName = "%s_%s_%s.jpg"%(k[0], k[1], k[2])    # 图片保存文件名
    pathFile = "C:\Users\Administrator\Desktop\pic\%s"%(fileName)

    http = urllib3.PoolManager()
    res = http.request('GET', url).data
    status = http.request('GET',url).status

    if status == 200 :
        with open (pathFile, "wb") as f :
            f.write(res)
    else :
        print("图片不存在")

最后

以上就是开心火为你收集整理的python获取Oracle数据,并根据获取信息请求下载图片的全部内容,希望文章能够帮你解决python获取Oracle数据,并根据获取信息请求下载图片所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部