概述
本文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数据,并根据获取信息请求下载图片所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复