python爬取股票日线_Python+MongoDB导入股票日线及分钟线数据

本文介绍如何使用Python脚本结合MongoDB,读取股票日线和分钟线数据文件,然后批量导入到数据库。代码示例中包含单线程和多线程导入方法,建议线程数等于CPU核心数减一以提高导入效率。
摘要由CSDN通过智能技术生成

本文演示了采用Python脚本,配合MongoDB数据库,读取股票数据文件,并写入数据库的过程。 导入数据库的方法支持单线程及多线程两种方式。经过本地开发机测试,开启2-3个线程时,导入速度快于单线程导入;当开启线程超过4个之后,导入速度反而小于单线程;猜测可能是跟机器CPU核心数有关,建议开始CPU核心数N-1的线程。例如,若CPU核心数为8时,可以开启7个线程进行导入,可大幅提高导入速度。 Python操作MongoDB,需要引入pymongo模块,可自行搜索该模块的安装方法,不再赘述。以下是Python代码:

util_file.py 读取数据文本,导入数据库的公共方法类

#!/usr/bin/env python

#coding:utf-8

import threading

import pymongo

import time

class UtilFile:

def IsSubString(SubStrList,Str):

flag=True

for substr in SubStrList:

if not(substr in Str):

flag=False

return flag

def GetFileList(FindPath,FlagStr=[]):

import os

FileList=[]

FileNames=os.listdir(FindPath)

if (len(FileNames)>0):

for fn in FileNames:

if (len(FlagStr)>0):

#返回指定类型的文件名

if (UtilFile.IsSubString(FlagStr,fn)):

#fullfilename=os.path.join(FindPath,fn)

#FileList.append(fullfilename)

FileList.append(fn)

else:

#默认直接返回所有文件名

#fullfilename=os.path.join(FindPath,fn)

#FileList.append(fullfilename)

FileList.append(fn)

#对文件名排序

if (len(FileList)>0):

FileList.sort()

return FileList

'''

函数功能:读取通达信数据导出文件内容,导入到数据库中

入参:

conn_db: 导入所使用的数据库

file_dir: 数据文件目录

file_list: 数据目录下文件名List

file_type: 数据文件类型。枚举值。 M1:1分钟线数据; D: 日线数据

tb_pre_name: 数据表名称前缀

print_level: 打印级别。枚举值。0:不打印; 1:按文件打印; 2:按记录打印

thread_name: 线程名称(打印输出用)

'''

def ImpDataFromFile(conn_db, file_

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值