python读取数据库出txt报表
python出报表使用到了数据库访问,文件读写,字符串切片处理。还可以扩展到电子邮件的发送,异常处理以及定时批任务。
总之在学习中发现还是有蛮多乐趣在其中。
#coding=utf-8
__date__='' import cx_Oracle
import os
import time isExt=os.path.exists('V:/report/%s'%time.strftime('%Y%m%d',time.localtime()))
if not isExt:
os.mkdir('V:/report/%s'%time.strftime('%Y%m%d',time.localtime()))
file_name='V:/report/%s/%s.txt'%(time.strftime('%Y%m%d',time.localtime()),time.strftime('%Y%m%d',time.localtime())) sql='''select t.merchant,
t.type,
aes128_decrypt(t.accountno) accountno,
t.amount,
t.seq,
t.date,
t.merchant_order_id,
t.merchant_order_date,
t.charge,
t.success_time,
decode(t.status,'00','成功','01','失败') status
from hpay.trans_info_log t
where t.type = 'debit'
and t.status = '00'
''' conn=cx_Oracle.connect('username/password@host:port/SERVICE_NAME')
c=conn.cursor()
x=c.execute(sql)
results=x.fetchall()#得到总结果
with open(file_name,'w') as f:#w表示写
f.write('总条数=%s\n商户号|交易类型|银行卡号|交易金额|交易流水号|交易时间|商户订单号|商户订单时间|交易手续费|交易成功时间|交易状态\n'%len(results))
for re in results:#遍历每一行
with open(file_name,'a') as w:#a表示追加
acctno=str(re[2])
newacctno=(acctno[:4]+acctno[-4:].rjust(len(acctno)-4,'*'))#对卡号进行特殊处理,卡号前4后4中间*号显示
w.write(str(re[0])+'|'+str(re[1])+'|'+str(newacctno)+'|'+str(re[3])+'|'+str(re[4])+'|'+str(re[5])+'|'+str(re[6])+'|'+str(re[7])+'|'+str(re[8])+'|'+str(re[9])+'|'+str(re[10])+'\n')
c.close()
conn.close()
运行代码,得到结果展示:

额外补充一下字符串对齐各种方法的区别:
S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.rjust(width,[fillchar]) #右对齐
S.center(width, [fillchar]) #中间对齐
S.zfill(width) #把S变成width长,并在右对齐,不足部分用0补足
python读取数据库出txt报表的更多相关文章
- python读取数据库并把数据写入本地文件
一,介绍 上周用jmeter做性能测试时,接口B传入的参数需要依赖接口A生成的借贷申请ID,接口A运行完需要把生成的借贷申请ID导出来到一个文件,作为参数传给接口B,刚开始的时候,手动去数据库倒, 倒 ...
- python读取数据库mysql报错
昨天在学习PYTHON读取数据库的知识时,一直在报错,找不到原因. 最后同事说是语法错误. import sysreload(sys)sys.setdefaultencoding('gb18030') ...
- python读取数据库数据,读取出的中文乱码问题
conn = pymysql.connect( host='127.0.0.1', port=3302, user='username', passwd='password', db=database ...
- python读取、写入txt文本内容
转载:https://blog.csdn.net/qq_37828488/article/details/100024924 python常用的读取文件函数有三种read().readline().r ...
- python读取数据库数据有乱码怎么解决?
http://blog.sina.com.cn/s/blog_6826662b0100yeze.html 简单暴力,直接上代码 conn = MySQLdb.connect(host = " ...
- python 读取数据库中文内容显示一堆问号
需要在连接数据库时 设置编码格式 def select_db(self,db_name): self.conn = MySQLdb.connect( host = self.ip, port = se ...
- python 读取数据库时,datetime类型无法被json序列化--解决方案
新增针对datetime的jsonencode: # -*- coding: utf-8 -*- import json from datetime import date, datetime cla ...
- 孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录
孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ...
- Python读取txt文件
Python读取txt文件,有两种方式: (1)逐行读取 data=open("data.txt") line=data.readline() while line: print ...
随机推荐
- 微信小程序是怎么运行的?
微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地. 紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路径 而写在 pages 字段的第一个页面就是这个小程 ...
- React面试题
React 简述下React的生命周期,性能优化在哪个生命周期,ajax操作在哪个生命周期 React中key的作用是什么 什么是虚拟DOM diff算法原理 React中refs的作用是什么
- Eclipse 上传 删除 下载 分析 hdfs 上的文件
本篇讲解如何通过Eclipse 编写代码去操作分析hdfs 上的文件. 1.在eclipse 下新建Map/Reduce Project项目.如图: 项目建好后,会默认加载一系列相应的jar包. 下 ...
- 【学习】Python进行数据提取的方法总结【转载】
链接:http://www.jb51.net/article/90946.htm 数据提取是分析师日常工作中经常遇到的需求.如某个用户的贷款金额,某个月或季度的利息总收入,某个特定时间段的贷款金额和笔 ...
- php laravel+nginx 除了根目录都报404 解决
在nginx的配置文件加 location / { try_files $uri $uri/ /index.php?$query_string; } 即可!!!!!!!
- oracle SQL多表查询
SQL多表查询 1.集合理论 1.1 什么是集合 具有某种特定性质的事物的总体. 集合的特性:无序性.互异性.确定性. 一个集合可以小到从一个表中取出一行中的一列. 1 ro ...
- notepad++之删除空行
正则表达式替换 查找目标: \r\n{0,1}[\s\t]*\r\n 替换为: \r\n 循环查找:勾选
- Mac系统如何显示隐藏文件?
显示全部文件 defaults write com.apple.finder AppleShowAllFiles -bool true osascript -e 'tell application & ...
- 微信小程序海报生成功能
如果是H5页面的话给大家推荐一款不错的插件html2canvas,这个插件可以将html元素转为canvas并一键生成png图片,但是本文的重点是在小程序上如何实现生成图片的功能.因为小程序没有DOM ...
- 用phpstudy配置网站遇到的一些问题
第一次是配置在我本机,总是连不上数据库,后来查看到mysql.ini配置文件里面端口号有一个不是3306,更改之后就好了. 第二次是配置在笔记本电脑上,安装的时候比较顺利,也就遇到80端口被占用还有缺 ...