Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取
CMakeLists.txt
project(wMA)
add_library(wMA SHARED wMA.cpp)wMA.h
#pragma once #ifndef WMA_WMA_H
#define WMA_WMA_H
#endif #ifdef BUILD_WMA_DLL
#define IO_WMA_DLL __declspec(export)
#else
#define IO_WMA_DLL __declspec(import)
#endif extern "C"
{
IO_WMA_DLL int wMA(double array[], int arrayLen, int n);
}wMA.cpp
#define BUILD_WMA_DLL #include "wMA.h"
#include <iostream>
#include <fstream> using namespace std; IO_WMA_DLL int wMA(double array[], int arrayLen, int n)
{
cout << "欢迎光临..." << endl;
cout << "开始计算..." << endl;
int m = n;
double wMA[arrayLen];
if(arrayLen >= n && n >= 0)
{
switch(n)
{
case 0:
{
cout << "长度为零..." << endl;
for(int i = 0; i < m; i++)
{
wMA[i] = 0;
}
break;
}
default:
{
for(int i = 0; i < m - 1; i++)
{
wMA[i] = 0;
}
while(arrayLen >= m)
{
double temp = 0;
for(int i = m - n, j = 0; i < m; i++, j++)
{
temp += array[i] * j;
}
wMA[m - 1] = temp / n;
m++;
}
break;
}
}
}
else
{
cout << "长度错误..." << endl;
}
cout << "存入文件..." << endl;
ofstream fWMA("c:\\wMA.csv");
if(!fWMA)
{
cout << "打开错误..." << endl;
return -1;
}
else
{
fWMA << "Index" << "," << "index of sh" << "," << "wMA" << "," << endl;
for(int i = 0; i < arrayLen; ++i)
{
fWMA << i << "," << array[i] << "," << wMA[i] << "," << endl;
}
cout << "完成写入..." << endl;
fWMA.close();
return 1;
}
}wMA.py
import tushare
from ctypes import *
# 数据预处理
dataFrame = tushare.get_hist_data('sh')
open = dataFrame['open'].values
openLen = len(open)
# python 的 list 格式转为 c 的 array 格式
array = (c_double * openLen)(*open)
arrayLen = openLen
# 调用 DLL 函数 wMA 算出 wMA 值存入文件
hDLL = CDLL('C:\\Users\\Perelman\\.CLion2016.1\\system\\cmake\\generated\\wMA-4d5bfe42\\4d5bfe42\\Debug\\libwMA.dll')
print(hDLL.wMA(array, arrayLen, 5))
![]()
读取 csv,调整后存数据库,python socket 和 mysql 部分见其他随笔,
import pandas
dataFrame = pandas.DataFrame(pandas.read_csv("c:\\wMA.csv"))
print(dataFrame)
dataFrame = dataFrame.drop(['Unnamed: 3'], axis=1)
print(dataFrame)
Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取的更多相关文章
- CSV文件在Python中的几种处理方式
Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型.在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文 ...
- csv文件已经python内置csv模块
csv(Comma Separated Value,即逗号分隔值),文件以纯文本形式存储表格数据(数字和文本).可以用excel打开,并自动将每个逗号隔开的数据作为一列在excel中显示. pytho ...
- 将Excel文件转为csv文件的python脚本
#!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚本 需要将该脚本直接放到要转换的Excel文件同级 ...
- C++ 把数组数据存入 CSV 文件,以及读取 CSV 文件的数据
1. CSV-百度百科 2. 代码 #pragma once //Microsoft Visual Studio 2015 Enterprise #include<iostream> #i ...
- Jmeter实现从csv文件中随机读取数据
一.需求 参数放在csv文件中,文件格式如下,需求每次从文件中随机读取一行数据. 二.步骤 1.在csv文件中新增加一列,pl 2.新增一个配置原件-随机数,设置如下: 50是文件数据的行数 3.新增 ...
- ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中
# -*- coding: utf-8 -*- import math import re import csv import repr def ean_checksum(eancode): &quo ...
- Android调用系统自带的文件管理器进行文件选择并读取
先调用: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //设置类型,我这里是任意类 ...
- python下载youtube视频
谷歌开源了一个新的数据集,BoundingBox,(网址在这里)这个数据集是经过人工标注的视频数据集,自然想将它尽快地运用在实际之中,那么首先需要将其下载下来:可以看到网址上给出的是csv文件,该文件 ...
- 使用Python读写csv文件的三种方法
Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...
随机推荐
- Appfuse:扩展自己的GenericManager
通过代码生成机制的appfuse访问数据都通过GenericManager来实现,GenericManager默认提供了以下几个方法: package org.appfuse.service; imp ...
- 将现有MySQL数据库改为大小写不敏感
用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在.而Windows下的MySQL却是大小写不敏感的,所有表名和数据 ...
- php类中的魔术方法
1.构造函数 析构函数class pt{ function __construct($data) { echo "pt is start ..."; $this->pr($d ...
- how2heap分析系列:2_fastbin_dup
源码 #include <stdio.h> #include <stdlib.h> int main() { printf("This file demonstrat ...
- eclipse安装版本
http://www.08kan.com/gwk/MzAwOTE3NDY5OA/203521023/1/cdf557d3a1d4535a6c691ce756c3f8b1.html
- dubbox 增加google-gprc/protobuf支持
好久没写东西了,今年实在太忙,基本都在搞业务开发,晚上来补一篇,作为今年的收官博客.google-rpc 正式发布以来,受到了不少人的关注,这么知名的rpc框架,不集成到dubbox中有点说不过去. ...
- [LeetCode] Anagrams 错位词
Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...
- c#中多线程同步Lock(锁)的研究以及跨线程UI的操作
本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象.由于想更直观的显示结果,所以,在做demo的时候,就把多线程通过事件操作UI的代码也写了出来,留作备忘和分享吧. 其实多线程的同步,使用 ...
- csv表格处理(上)-- JS 与 PHP 协作导入导出
CSV简介 在开发后台管理系统的时候,几乎无可避免的会遇到需要导入导出Excel表格的需求.csv也是表格的一种,其中文名为“逗号分隔符文件”.在Excel中打开如下图左边所示,在记事本打开如下图右边 ...
- Doc
一:window: 属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 方法(函数):事件(事先设置 ...