Python导入Excel、csv文件进oracle数据库
2017-03-14 16:55
447 查看
# coding=utf-8 import cx_Oracle import csv import xlrd import os import datetime class ImportOracle(object): def inoracle(self): pass def connOracle(self): os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.utf8' conn= cx_Oracle.connect('数据库用户名', '密码', 'IP地址:端口号/服务实例') cursor=conn.cursor() fields=[i+' varchar2(200)' for i in self.title] fields_str=','.join(fields) try: sql='drop table %s'%(self.table_name) print sql cursor.execute(sql) except cx_Oracle.Error as e: print e finally: sql='create table %s (%s)'%(self.table_name,fields_str) print sql cursor.execute(sql) a=[':%s'%i for i in range(len(self.title)+1)] value=','.join(a[1:]) sql='insert into %s values(%s)'%(self.table_name,value) print sql cursor.prepare(sql) cursor.executemany(None, self.data) cursor.close() conn.commit() conn.close() class ImportOracleCsv(ImportOracle): def inoracle(self): with open(self.filename,'rb') as f: reader=csv.reader(f) contents=[i for i in reader] title=contents[0] data=contents[1:] return (title,data) class ImportOracleExcel(ImportOracle): def inoracle(self): wb=xlrd.open_workbook(self.filename) sheet1=wb.sheet_by_index(0) title=sheet1.row_values(0) data=[sheet1.row_values(row) for row in range(1,sheet1.nrows)] return (title,data) class ImportError(ImportOracle): def inoracle(self): print 'Undefine file type' return 0 class ChooseFactory(object): choose={} choose['csv']=ImportOracleCsv() choose['xlsx']=ImportOracleExcel() choose['xls']=ImportOracleExcel() def choosefile(self,ch): if ch in self.choose: op=self.choose[ch] else: op=ImportError() return op if __name__=="__main__": file_name=u'C:/test.xlsx' table_name='ly_tmp_'+datetime.datetime.now().strftime('%Y%m%d') op=file_name.split('.')[-1] factory=ChooseFactory() cal=factory.choosefile(op) cal.filename=file_name (cal.title,cal.data)=cal.inoracle() cal.table_name=table_name cal.connOracle()
相关文章推荐
- 使用Python将Excel文件导入到Oracle数据库里
- python导入TXT、Excel、csv文件
- oracle数据库怎么导入csv格式文件呢
- Mac中用Excel导入csv文件出现乱码
- 导入Excel和CSV文件
- php数据导入导出之excel(csv文件)
- Oracle数据库表导出和导入csv文件操作
- python文件操作(2)--分析扫描得到的日志文件把文件状态导入Excel表格
- Python导出数据到Excel可读取的CSV文件的方法
- csv文件中的数据导入到oracle数据库中的方法
- 用python+selenium导入excel文件
- php数据导入导出之excel(csv文件)
- (原创)关于如何处理EXCEL( CSV)文件 导入数据库的解决方法!!
- SQLite3创建数据库的方法 和 SQLite从Excel文件中导入数据 及 python/qpython sqlite 中文 乱码
- .csv文件导入到oracle数据库
- springMVC+mybatis 把excel文件导入oracle数据库
- 用脚本将excel,csv等文件导入数据库
- php数据导入导出之excel(csv文件)
- oracle数据库表导出和导入csv文件操作
- R—读取数据(导入csv,txt,excel文件)