2017-05-10 3 views
0

私は自動化のためのPythonコードを書くのが初めてであるため、私のモチーフはoracle sqlで書かれた複数のetlテストスクリプトを実行し、 csvファイルへの各クエリの結果、スクリプトには複数のsqlクエリがあります。各クエリ結果はcsvの別のタブに書き込まれます。以下のような基本的な構造を作成しようとしましたが、コードを変更する方法についてのヘルプが必要です以下: インポートOS 輸入cx_Oracle インポートCSV複数のoracle sqlスクリプトの結果を、スクリプトがPythonを使用してデータを返すときにのみCSVにエクスポートする方法

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ファイルに複数のシート/タブを含めることはできません:q1q2q3

ただし、The Pandas packageの使用をお勧めします。これは非常に便利なread_sql functionと同様に便利なto_csv functionを持っています。 read_sql関数は、dbからDataFrameオブジェクトに情報を収集します。そのデータフレームを操作することもできますし、いくつかの異なるフォーマットで保存することもできます。そのうちの1つはcsvです。 1つのファイルに複数のシートが必要な場合は、hdf file、さらにはexcel (.xlsx) fileです。

関連する問題