python 导入csv文件到oracle_python将文件夹下的所有csv文件存入mysql和oracle数据库
#oracle版
首先新建python脚本(d:/python/orclImport.py)
import os #引入os包
if __name__ == '__main__':
#遍历文件夹下所有的dmp文件,其中filename为所有文件、文件夹的名称。
#因为我文件夹下确定都是dmp文件,所以无需进行特殊判断
for filename in os.listdir("D:\dmp"):
# 调用cmd窗口,并执行dmp的导入命令
# 因为dmp文件数据量太大,我选择一条一条的去执行,就是如此,电脑已经打字都卡了
os.system("imp orcl/123456@127.0.0.1/zrr file=\"D:\dmp\\"+filename+"\" full=y ignore=y")
在命令行执行 python d:/python/orclImport.py
# mysql版
import os
import pymysql
# import datetime, time
# from config import *
database_table_name = "stockdata"
infile_path = 'E:/学习资料/stock_data'
outfile_path = 'E:/学习资料/stock_data1'
# 删除首行的股票代码和空行
def delblankline(infile, outfile):
infp = open(infile, "r")
outfp = open(outfile, "w")
lines = infp.readlines()
for li in lines[1:]:
if li.split():
outfp.writelines(li)
infp.close()
outfp.close()
def csv2bigcsv(path, outfile):
"""1.删除股票代码+空行 2.合并所有文件数据"""
# infp = open(infile, "r")
outfp = open(outfile, "w")
i = 1
for filename in os.listdir(path):
domain = os.path.abspath(path) # 获取文件夹的路径,也可去掉
filepath = os.path.join(domain, filename) # 文件的完整路径
infp = open(filepath, 'r') # 读取文件内容
lines = infp.readlines()
if i == 1: outfp.writelines(lines[3].split())
for li in lines[5:]:
if li.split():
outfp.writelines(li)
infp.close()
i += 1
outfp.close()
# 执行sql语句
def db_excute(sql):
# local_infile = 1 执行load data infile
db_info = {
'host': '127.0.0.1',
'user': 'root',
'password': 'root',
'port': 3306,
'database': 'test',
'charset': 'utf8',
'local_infile': 1
}
db = pymysql.connect(**db_info)
# db.set_charset('utf8')
cursor = db.cursor()
try:
cursor.execute(sql)
db.commit()
except pymysql.Error as e:
print(e)
finally:
db.close()
# 将单个csv文件插入数据库
def csv2mysql(file_path, database_table_name):
''' LOAD DATA LOCAL INFILE "/root/test/infohash_20180603.txt"
INTO TABLE xl_log_analysis.infohash_20180603
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES ( infohash );'''
'''LINES TERMINATED BY \\r\\n WIN 为\\r,LINUX 为\\n'''
# " LOAD DATA LOCAL INFILE '" + file_path + "'"\
# + " INTO TABLE " + database_table_name \
# + " FIELDS TERMINATED BY ',' " \
# + " OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' " \
# + " LINES TERMINATED BY '\\r\\n' " \
# + " IGNORE 5 LINES; "
# 报1148错误,可以本地开启local_infile服务
# set global local_infile = 'ON';
sql = '''LOAD DATA LOCAL INFILE '{0}' INTO TABLE {1}
CHARACTER SET UTF8
FIELDS TERMINATED BY ','
ENCLOSED BY '\"' ESCAPED BY '\"'
LINES TERMINATED BY '\\r\\n'
IGNORE 5 LINES (`symbol`, `date`, `opening_price`, `highest_price` , `lowest_price`, `closing_price`,
`change`, `trading_volume`, `turnover`, `circulation_market_value`, `total_value`,
`turnover_rate`, `post_resumption_price`, `report_type`, `report_time`, `PE_TTM`,
`PS_TTM`, `PCF_TTM`, `PB`, `ex_duplicate_price`, `tradable_share`, `total_stock_issue`,
`total_assets`, `current_asset`, `gross_liabilities`, `current_liabilities`, `total_operating_income`,
`operating_income`, `total_operating_costs`, `operating_costs`, `operating_profit`, `net_profits`,
`selling_expenses`, `administration_expenses`, `financial_expenses`, `net_cash_flow`,
`NOCF`, `NICF`, `NFCF`, `ROE_TTM`);'''.format(file_path, database_table_name)
db_excute(sql)
# print(sql)
# 将文件路径下的所有csv文件插入数据库
def to_mysql(infile_path, database_table_name):
for filename in os.listdir(infile_path):
print('正在上传:', filename)
# domain = os.path.abspath(infile_path) # 获取文件夹的路径,也可去掉
# file_path = os.path.join(domain, filename) # 文件的完整路径
file_path = infile_path + '/' + filename
# print('file_path: ',file_path)
csv2mysql(file_path, database_table_name)
if __name__ == '__main__':
# delblankline("sh600000.csv", "sh600000_.csv")
# csv2bigcsv(infile_path, "all-groups.csv")
# 创建新表
createtable_sql = '''CREATE TABLE IF NOT EXISTS `{0}` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`symbol` VARCHAR ( 10 ) DEFAULT NULL COMMENT '股票代码',
`date` DATE DEFAULT NULL COMMENT '日期',
`opening_price` FLOAT DEFAULT NULL COMMENT '开盘价',
`highest_price` FLOAT DEFAULT NULL COMMENT '最高价',
`lowest_price` FLOAT DEFAULT NULL COMMENT '最低价',
`closing_price` FLOAT DEFAULT NULL COMMENT '收盘价',
`change` FLOAT DEFAULT NULL COMMENT '涨跌幅',
`trading_volume` BIGINT DEFAULT NULL COMMENT '交易量',
`turnover` BIGINT DEFAULT NULL COMMENT '交易额',
`circulation_market_value` BIGINT DEFAULT NULL COMMENT '流通市值',
`total_value` BIGINT DEFAULT NULL COMMENT '总市值',
`turnover_rate` FLOAT DEFAULT NULL COMMENT '换手率',
`post_resumption_price` FLOAT DEFAULT NULL COMMENT '后复权价格',
`report_type` VARCHAR ( 64 ) DEFAULT NULL COMMENT '报告类型',
`report_time` DATE DEFAULT NULL COMMENT '报告时间',
# 市盈率PE 市净率PB 市销率PS 市现率PCF
`PE_TTM` FLOAT DEFAULT NULL COMMENT '市盈率TTM',
`PS_TTM` FLOAT DEFAULT NULL COMMENT '市销率TTM',
`PCF_TTM` FLOAT DEFAULT NULL COMMENT '市现率TTM',
`PB` FLOAT DEFAULT NULL COMMENT '市净率',
`ex_duplicate_price` FLOAT DEFAULT NULL COMMENT '前复权价格',
`tradable_share` BIGINT DEFAULT NULL COMMENT '流通股本',
`total_stock_issue` BIGINT DEFAULT NULL COMMENT '总股本',
`total_assets` BIGINT DEFAULT NULL COMMENT '总资产',
`current_asset` BIGINT DEFAULT NULL COMMENT '流动资产',
`gross_liabilities` BIGINT DEFAULT NULL COMMENT '总负债',
`current_liabilities` BIGINT DEFAULT NULL COMMENT '流动负债',
`total_operating_income` BIGINT DEFAULT NULL COMMENT '营业总收入',
`operating_income` BIGINT DEFAULT NULL COMMENT '营业收入',
`total_operating_costs` BIGINT DEFAULT NULL COMMENT '营业总成本',
`operating_costs` BIGINT DEFAULT NULL COMMENT '营业成本',
`operating_profit` BIGINT DEFAULT NULL COMMENT '营业利润',
`net_profits` BIGINT DEFAULT NULL COMMENT '净利润',
`selling_expenses` BIGINT DEFAULT NULL COMMENT '销售费用',
`administration_expenses` BIGINT DEFAULT NULL COMMENT '管理费用',
`financial_expenses` BIGINT DEFAULT NULL COMMENT '财务费用',
`net_cash_flow` BIGINT DEFAULT NULL COMMENT '净现金流',
`NOCF` BIGINT DEFAULT NULL COMMENT '经营活动净现金流operating activities',
`NICF` BIGINT DEFAULT NULL COMMENT '投资活动净现金流investment activities',
`NFCF` BIGINT DEFAULT NULL COMMENT '筹资活动净现金流financing activities',
`ROE_TTM` BIGINT DEFAULT NULL COMMENT '净资产收益率TTM Net asset yield',
PRIMARY KEY ( `id` )
) ENGINE = INNODB DEFAULT CHARSET = UTF8MB4;'''.format(database_table_name)
db_excute(createtable_sql) # 创建新表
print(createtable_sql)
to_mysql(infile_path, database_table_name) # 导入infohash数据到mysql xl_log_analysis 表
python 导入csv文件到oracle_python将文件夹下的所有csv文件存入mysql和oracle数据库相关推荐
- 循环可视化文件夹下的所有PCD文件
循环可视化文件夹下的所有PCD文件 程序功能:显示文件夹下的所有PCD文件(包含有获取文件夹下所有文件名) #include <pcl/point_cloud.h> #include &l ...
- python 读取文件到字典读取顺序_python顺序的读取文件夹下名称有序的文件方法...
python顺序的读取文件夹下名称有序的文件方法 如下所示: import os path="/home/test/" #待读取的文件夹 path_list=os.listdir( ...
- Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略
Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...
- 使用某个文件夹下的所有文件去替换另一个文件夹下及其子文件夹下存在的同名文件(Python实现)...
值此新年即将到来之际,在这献上今年最后一篇文章. 产生这个需求是在项目的一次图标替换上,当时给了我一堆新图标要替换原来的老图标,可是原来的老图标分布在某个文件夹下的各个子文件夹下面,而新图标全是在同一 ...
- python找出某个文件夹下某个后缀的文件
python找出某个文件夹下某个后缀的文件 import osdef find_files_with_suffix(folder_path, suffix):# 使用os模块获取文件夹中所有文件的路径 ...
- Python执行某一文件夹下的所有py文件
记一段代码,是使用python执行某一文件夹下的所有py文件 # -*- coding: utf-8 - import os# 当前脚本所在的文件绝对路径 cur_path = os.path.dir ...
- python加载图片并显示_python读取目录下所有的jpg文件,并显示第一张图片的示例...
python读取目录下所有的jpg文件,并显示第一张图片的示例 如下所示: # -*- coding: UTF-8 -*- import numpy as np import os from scip ...
- r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...
解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...
- python3指定目录所有excel_Python——合并指定文件夹下的所有excel文件
前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...
最新文章
- php jwt使用案例,PHP使用JWT创建Token的实例详解
- Restful与webService区别
- java内存区域之程序计数器
- python3下载手机安卓版-QPython3下载
- JBOSS 5.0GA 配置布署
- 安卓案例:标准化测试
- Java并发之线程池ThreadPoolExecutor源码分析学习
- Java Android未捕获异常处理机制
- 美术集网校—多点透视如何运用于绘画中?学会透视增加绘画体积感!
- p1 p 0xf在c语言中啥意思,单片机控制1位共阴极数码管,控制端P1=0x76;则数码管显示的内容是 答案:H...
- 用elasticsearch和nuxtjs搭建bt搜索引擎
- web项目上云_联想Filez携手浙江中烟,发力“云”端,打造“烟草上云”新势能...
- php reactphp wss_swoole 使用websocket建立wss连接
- 【机器学习基础】支持向量回归
- 为什么量子力学总是让人感到疑惑?
- 盛世昊通以产业数字化赋能高质量发展
- mysql的索引介绍
- 区块链跨境支付解决方案
- clearInterval不起作用?肯定是用法不对
- 班主任对学生的成绩分析
热门文章
- 无法打开计算机上的event log服务,Win7系统下启用Windows event log服务发生4201错误的正确解决方法...
- android中的 listview,Android中ListView的初步认识(一)
- mysql使用jtable_jtable 的简单使用
- html5干货,干货:详解HTML5中常见的五大全局属性
- linux命令帮助怎么看,Linux命令帮助
- sprintf函数_三分钟学 Go 语言——函数深度解析(下) 可变参数
- csv格式清洗与转换python_实例详解Python中 CSV格式清洗与转换
- sql date类型_共享单车数据分析的SQL数据库设计
- ahp层次分析法_基于层次分析法(AHP)的店铺选址应用研究
- Asterisk权威指南/第六章 拨号计划基础