2017-05-10 20 views
0

我是新编写的自动化Python代码,因此我的主题是执行多个用oracle sql编写的etl测试脚本并写入每个查询的结果是一个csv文件,该脚本有多个sql查询每个查询结果应写入csv中的不同选项卡。我试图编写如下的基本结构,但需要帮助我如何修改代码如下: 进口OS 进口cx_Oracle 导入CSV如何将结果从多个oracle sql脚本导出到csv只有当脚本使用python返回数据时

f = open('tabledefinition.sql') #PATH WHERE THE SQL SCRIPTS ARE STORED 

full_sql = f.read() 

SQL= full_sql.split(';') 

filename="S:\Output.csv" # PATH WHERE THE OUTPUT FILE IS STORED 
FILE=open(filename,"w"); 
output=csv.writer(FILE, dialect='excel') 

connection = cx_Oracle.connect('userid/[email protected]:PORT/SID') 
#CONNECTION DETAILS FOR DB 

cursor = connection.cursor() 

for sql_command in SQL: 
    cursor.execute(SQL) 
    for row in cursor: 
     output.writerow(row) 
     cursor.close() 
     connection.close() 
     FILE.close() 

回答

0

虽然我还没试过此我自己,这些问题说清楚csv文件不能有多个工作表/选项卡:q1,q2,q3

但是,我可以推荐使用The Pandas package。它有一个非常方便的read_sql function,以及一个,也许同样方便to_csv functionread_sql函数将从你的db中收集信息到一个DataFrame对象中。 Dataframe可以被操纵,或者可以以一些不同的格式存储,其中之一是csv。如果您在一个文件中需要多个工作表,则一个可用选项是hdf file或甚至是excel (.xlsx) file

相关问题