Python导入/使用cx_Oracle在Oracle BD中插入CSV(无标头)
问题描述:
任何人都可以使用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()
答
如果你想简单地忽略CSV文件的第1行,这很容易被执行完成之后立即读者已创建:
next(reader)
这只要从第一排CSV文件并丢弃它。
您的传奇和这样一个简单的解决方案。非常感谢 –
不客气。 :-) –