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 读取的更多相关文章

  1. CSV文件在Python中的几种处理方式

    Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型.在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文 ...

  2. csv文件已经python内置csv模块

    csv(Comma Separated Value,即逗号分隔值),文件以纯文本形式存储表格数据(数字和文本).可以用excel打开,并自动将每个逗号隔开的数据作为一列在excel中显示. pytho ...

  3. 将Excel文件转为csv文件的python脚本

    #!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚本 需要将该脚本直接放到要转换的Excel文件同级 ...

  4. C++ 把数组数据存入 CSV 文件,以及读取 CSV 文件的数据

    1. CSV-百度百科 2. 代码 #pragma once //Microsoft Visual Studio 2015 Enterprise #include<iostream> #i ...

  5. Jmeter实现从csv文件中随机读取数据

    一.需求 参数放在csv文件中,文件格式如下,需求每次从文件中随机读取一行数据. 二.步骤 1.在csv文件中新增加一列,pl 2.新增一个配置原件-随机数,设置如下: 50是文件数据的行数 3.新增 ...

  6. ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中

    # -*- coding: utf-8 -*- import math import re import csv import repr def ean_checksum(eancode): &quo ...

  7. Android调用系统自带的文件管理器进行文件选择并读取

    先调用: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //设置类型,我这里是任意类 ...

  8. python下载youtube视频

    谷歌开源了一个新的数据集,BoundingBox,(网址在这里)这个数据集是经过人工标注的视频数据集,自然想将它尽快地运用在实际之中,那么首先需要将其下载下来:可以看到网址上给出的是csv文件,该文件 ...

  9. 使用Python读写csv文件的三种方法

    Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...

随机推荐

  1. (十四)Maven聚合与继承

    1.Maven聚合 我们在平时的开发中,项目往往会被划分为好几个模块,比如common公共模块.system系统模块.log日志模块.reports统计模块.monitor监控模块等等.这时我们肯定会 ...

  2. 搞不清FastCgi与PHP-fpm之间是个什么样的关系?

    问 我在网上查fastcgi与php-fpm的关系,查了快一周了,基本看了个遍,真是众说纷纭,没一个权威性的定义. 网上有的说,fastcgi是一个协议,php-fpm实现了这个协议: 有的说,php ...

  3. 随机生成长度为len的密码,且包括大写、小写英文字母和数字

    一道华三面试题,随机生成长度为len的密码,且包括大写.小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数.具体实现见下面代码,已经很详细了 ...

  4. 使用vscode访问和修改远程计算机文件

    使用vscode访问和修改远程文件,分三步实现:在远程linux机器上安装rmate:在本地windows上安装openssh:在vscode中安装扩展remote vscode. 1. 在远程lin ...

  5. loadrunner性能测试---添加windows多台压力机

    添加多台压力机 1.前置条件 1)保证压力机上都安装了loadrunner Agent,并启动,状态栏中会有小卫星.       2)添加的压力机与controller所在机器是否在同一个网段,建议关 ...

  6. linux top命令结果参数详解

    非常详细的top结果说明文档. http://www.cnblogs.com/sbaicl/articles/2752068.html http://bbs.linuxtone.org/forum.p ...

  7. kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统

    一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...

  8. 【GSM】GTM900C的应用——短信

    虽说GSM已经很老旧,但其低廉的价格,非常适合一些需要小数据上网传输和短信等功能的应用场合. 不知道GSM能否像51单片机一样,在低端应用中长久不衰.GTM900C发送短信,支持两种模式,TXT和PD ...

  9. Linux虚拟机突然网络不能用了但是主机能ping㣈

    虚拟ping主机时出现: linux network is unreachable 搞了好久搞不定,之前都是好的 突然这样了. 解决办法: 第一步: "虚拟机设置"中的" ...

  10. ConcurrentHashMap内存泄漏问题

    问题背景 上周,同事写了一段ConcurrentHashMap的测试代码,说往map里放了32个元素就内存溢出了,我大致看了一下他的代码及运行的jvm参数,觉得很奇怪,于是就自己捣鼓了一下.首先上一段 ...