python出报表

Posted 慢乌龟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python出报表相关的知识,希望对你有一定的参考价值。

 python出报表使用到了数据库访问,文件读写,字符串切片处理。还可以扩展到电子邮件的发送,异常处理以及定时批任务。

总之在学习中发现还是有蛮多乐趣在其中。

 1 #coding=utf-8
 2 __date__=\'20181120\'
 3 
 4 import cx_Oracle
 5 import os
 6 import time
 7 
 8 isExt=os.path.exists(\'V:/report/%s\'%time.strftime(\'%Y%m%d\',time.localtime()))
 9 if not isExt:
10     os.mkdir(\'V:/report/%s\'%time.strftime(\'%Y%m%d\',time.localtime()))
11 file_name=\'V:/report/%s/%s.txt\'%(time.strftime(\'%Y%m%d\',time.localtime()),time.strftime(\'%Y%m%d\',time.localtime()))
12 
13 sql=\'\'\'select t.merchant,
14        t.type,
15        aes128_decrypt(t.accountno) accountno,
16        t.amount,
17        t.seq,
18        t.date,
19        t.merchant_order_id,
20        t.merchant_order_date,
21        t.charge,
22        t.success_time,
23        decode(t.status,\'00\',\'成功\',\'01\',\'失败\') status
24   from hpay.trans_info_log t
25  where t.type = \'debit\'
26    and t.status = \'00\'
27 \'\'\'
28 
29 conn=cx_Oracle.connect(\'username/password@host:port/SERVICE_NAME\')
30 c=conn.cursor()
31 x=c.execute(sql)
32 results=x.fetchall()#得到总结果
33 with open(file_name,\'w\') as f:#w表示写
34     f.write(\'总条数=%s\\n商户号|交易类型|银行卡号|交易金额|交易流水号|交易时间|商户订单号|商户订单时间|交易手续费|交易成功时间|交易状态\\n\'%len(results))
35 for re in results:#遍历每一行
36     with open(file_name,\'a\') as w:#a表示追加
37         acctno=str(re[2])
38         newacctno=(acctno[:4]+acctno[-4:].rjust(len(acctno)-4,\'*\'))#对卡号进行特殊处理,卡号前4后4中间*号显示
39         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\')
40 c.close()
41 conn.close()
42     

运行代码,得到结果展示:

额外补充一下字符串对齐各种方法的区别:

S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。 
S.rjust(width,[fillchar]) #右对齐 
S.center(width, [fillchar]) #中间对齐 
S.zfill(width) #把S变成width长,并在右对齐,不足部分用0补足 

 

以上是关于python出报表的主要内容,如果未能解决你的问题,请参考以下文章

EasyClick 运行代码片段出Null

EasyClick 运行代码片段出Null

Error: Python executable “H:devpython3.10python.EXE“ is v3.10.0, which is not supported by gyp.(代码片段

从数据库中导出excel报表

ireport报表制作, 通过节点产品类型来判断,当该节点审核通过之后,报表相对应的字段出显示审核意见及签名

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段