2017-03-03 80 views
0

任何人都可以使用cx_Oracle提出一種將CSV文件導入Oracle BD的方法。下面的代碼有效,但在運行下面的Python腳本之前,我必須手動刪除第1行的CSV標題列。有沒有辦法將代碼更改爲忽略CSV文件的第1行?Python導入/使用cx_Oracle在Oracle BD中插入CSV(無標頭)

import cx_Oracle 
import csv 

connection = cx_Oracle.connect(USER,PASSWORD,'adhoc_serv')#DADs 

cursor = connection.cursor() 

insert = """ 
INSERT INTO MUK (CODE, UNIT_NAME, GROUP_CODE, GROUP_NAME,) 
VALUES(:1, :2, :3, :4)""" 

# Initialize list that will serve as a container for bind values 
L = [] 

reader = csv.reader(open(r'C:\Projects\MUK\MUK_Latest_PY.csv'),delimiter=',') 

for row in reader: 
L.append(tuple(row)) 


# prepare insert statement 
cursor.prepare(insert) 
print insert 

# execute insert with executemany 
cursor.executemany(None, L) 

# report number of inserted rows 
print 'Inserted: ' + str(cursor.rowcount) + ' rows.' 

# commit 
connection.commit() 

# close cursor and connection 
cursor.close() 
connection.close() 

回答

0

如果你想簡單地忽略CSV文件的第1行,這很容易被執行完成之後立即讀者已創建:

next(reader) 

這隻要從第一排CSV文件並丟棄它。

+0

您的傳奇和這樣一個簡單的解決方案。非常感謝 –

+0

不客氣。 :-) –