python 读文件 oracle excel 多维数组

# !/usr/bin/env python
# -*- coding: utf-8 -*-
import MySQLdb
from datetime import datetime
import cx_Oracle
import os
import xlwt
import sys
import re
import time

reload(sys)
sys.setdefaultencoding('utf-8')
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
import datetime  # 导入日期时间模块

f = open("aaaa.txt")
array = []
list = [[] for i in range(43)]
print list
i = 0
j = 4
x = 0
for line in f:
    line = line.strip()
    if re.match("^\d", line):
        print line
        for x in range(j):
            print x
            print line.split('\t')[x]
            list[i].append(line.split('\t')[x])
            print list
            # list[i][x]=line.split('\t',4)[x]
            # list[i].append(line.split('\t',4)[x])
    else:
        continue
    i = i + 1
    print 'iiiiiiiiii'
    print i
f.close
print '--------------------------------------------------'
print list

print str(int(list[0][2]) - 5)
def get_data(a,b,c,d):
    # 创建数据库连接.
    conn = cx_Oracle.connect('y/x@10.1.1.1/EDZFDB')
    # 创建游标
    cur = conn.cursor()
    # 执行查询,
    aa=a
    print aa
    cc=b
    dd=c
    ee=d
    cur.prepare("""select /*+ parallel (a 8)*/ * from h_beps_paymentbook a where a.workdate >= :aa  and a.payeracc = :cc and a.payeeacc = :dd and a.amount = :ee""")
    cur.execute(None,{'aa':aa,'cc':cc,'dd':dd,'ee':ee})
    # 由于查询语句仅会返回受影响的记录条数并不会返回数据库中实际的值,所以此处需要fetchall()来获取所有内容。
    result = cur.fetchall()
    # 关闭游标
    cur.close()
    # 关闭数据库连接
    conn.close
    # 返给结果给函数调用者。
    return result
def write_data_to_excel(result):
    y=0
    # 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)
    result = result
    # 实例化一个Workbook()对象(即excel文件)
    wbk = xlwt.Workbook(encoding='utf-8')
    # 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
    sheet = wbk.add_sheet('Sheet1', cell_overwrite_ok=True)
    # 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)
    #today = datetime.today()
    # 将获取到的datetime对象仅取日期如:2016-8-9
    #today_date = datetime.date(today)
    # 遍历result中的没个元素。
    titlelist=['cnaps']
    # for i in xrange(len(titlelist)):
    #     sheet.write(1, i, titlelist[i])
    # wbk.save(name + str(yesterday) + '.xls')
    # 对result的每个子元素作遍历,,遍历多维数组,result[i]为2维数组
    for i in xrange(len(result)):
        ##result[i] 表示一个2维数组
        xx=result[i]  ##得到一个2维数组 
        #result[i][j]得到一个一维数组
        for j in xrange(len(xx)):
        #遍历每个一维数组,将每个值写入
          yy=result[i][j] ##得到一个一维数组
          y=y+1
          for k in xrange(len(yy)):
            print  result[i][j][k]
            sheet.write(y, k, yy[k])
    # 以传递的name+当前日期作为excel名称保存。
    wbk.save('cnaps'  + '.xls')
arr=[]
for x in list:      
  print x
  try :
    aa=get_data(x[2],x[0],x[1],x[3])
    print aa
    print type(aa)
    arr.append(aa)
  except Exception ,e:
    print  e
print arr
print type(arr)
time.sleep(10)
write_data_to_excel(arr)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值