python对oracle、excel、pdf转图片demo

209 阅读1分钟

python 操作oracel

pip install -i https://pypi.douban.com/simple cx_oracle

python 操作excel

xlrd-2.0.1不支持读取xlsx,因此卸载后,安装1.2.0版本。

读取excel入库demo

import xlrd
import cx_Oracle as cx
from uuid import uuid4

con = cx.connect('c', 'c2.', '192.168.36.233:1521/orcl')  #创建连接
cursor = con.cursor()       #创建游标
cursor.execute("select 1 from dual ")  #执行sql语句
data = cursor.fetchone()        #获取一条数据
print(data[0])     #打印数据

excel = xlrd.open_workbook(r'D:\项目文档\123.xlsx')
sheet = excel.sheets()[1]
nrows = sheet.nrows
update_count=0
insert_count=0
print(nrows)
for i in range(1,nrows):
        row_data = sheet.row_values(i)
        print(row_data[0])
        # 遍历行数据的每一项,赋值进行数据字典
        sys_bank_code = row_data[0]
        bank_name =row_data[1]
        prefix = sys_bank_code[0:3]
        city =sys_bank_code[3:7]
        print(sys_bank_code,bank_name,prefix,city)

        cursor.execute("select count(1) from bt_input_bank_info b where b.sys_bank_code='"+ sys_bank_code+ "'")  # 执行sql语句
        data = cursor.fetchone()[0]  # 获取一条数
        
        if 1==data:
            update_count+=1
            print(sys_bank_code,'已存在')
            cursor.execute("update bt_input_bank_info b set b.bank_name='"+bank_name+"' where b.sys_bank_code='"+sys_bank_code+"'")  # 执行sql语句

        else:
            insert_count+=1
            uuid=str(uuid4()).replace("-", "")
            cursor.execute("insert into bt_input_bank_info b(id,sys_bank_code,bank_name,bank_prefix,bank_city_code,ibps_code) values('"+uuid+"','"+sys_bank_code+"','"+bank_name+"','"+prefix+"','"+city+"','1')")  # 执行sql语句
            print(sys_bank_code, '不存在')

'''    
        for j in range(len(row_data)):
            item = row_data[j]
            print(item)
'''

print("更新条数:",update_count,"新增条数",insert_count)

con.commit;
# 连接释放
cursor.close()  # 关闭游标
con.close()

pdf转图片

RuntimeError: Directory '[static]' does not exist
解决办法是卸载fitz模块,安装pymupdf模块。执行的命令如下:\
pip uninstall fitz
pip install pymupdf
import sys, fitz
import os
import datetime

def pyMuPDF_fitz(pdfPath, imagePath):
    startTime_pdf2img = datetime.datetime.now()  # 开始时间

    print("imagePath=" + imagePath)
    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 1.33333333  # (1.33333333-->1056x816)   (2-->1584x1224)
        zoom_y = 1.33333333
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False)

        if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在
            os.makedirs(imagePath)  # 若图片文件夹不存在就创建

        pix.writePNG(imagePath + '/' + 'images_%s.png' % pg)  # 将图片写入指定的文件夹内

    endTime_pdf2img = datetime.datetime.now()  # 结束时间
    print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)


if __name__ == "__main__":
    pdfPath = 'D:/BaiduNetdiskDownload/kearsImg/bank_/zhongxin.pdf'
    imagePath = 'D:/BaiduNetdiskDownload/kearsImg/bank_/'
    pyMuPDF_fitz(pdfPath, imagePath)