2017-03-03 83 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

不客气。 :-) –