go 语言调用 python 把.dat格式数据转换为.mat
2018-03-23 13:47
651 查看
1、安装numpy 和scipy模块
2、由于没有找到Go语言直接把.dat转换为.mat格式的方法,采用Go语言调用python转换。利用os/exec包中的Command方法调用python,后面三个是参数,存放需要转换数据的路径及转换格式。
getData.py python转换数据脚本如下:
数据本身是十六进制字符串,需要转换数据格式,例如:ad22f329,前四位作为复数的实部,后四位作为复数的虚部,考虑数据的正负,python十六进制字符串转换数字(考虑正负)的方法,可以通过struct中的unpack函数。
2、由于没有找到Go语言直接把.dat转换为.mat格式的方法,采用Go语言调用python转换。利用os/exec包中的Command方法调用python,后面三个是参数,存放需要转换数据的路径及转换格式。
cmd := exec.Command("python", "getData.py", fileStrings, filesPath, dataConvert) _, err := cmd.CombinedOutput() if err != nil { log.Error("python data convert Fail", err) this.Output = "Data Convert mat Fail" }
getData.py python转换数据脚本如下:
数据本身是十六进制字符串,需要转换数据格式,例如:ad22f329,前四位作为复数的实部,后四位作为复数的虚部,考虑数据的正负,python十六进制字符串转换数字(考虑正负)的方法,可以通过struct中的unpack函数。
# -*- coding: utf-8 -*- #coding=utf-8 import numpy as np from scipy import io import os,sys import binascii from struct import * def dat2mat(datFile,filePath,dataConvert): flist = datFile.split(";") datalist2 = [] for f in flist: if f == "": continue file1 = file(f,'r') datalist = [] i = 0 while True: line = file1.readline() if dataConvert == "1" and i == 0:#格式转换1 去掉无效首行 i = i+1 continue if not line: break a = line[0:4] b = line[4:8] c = int(a,16) d = int(b,16) e=unpack('h', pack('H', c))[0] f=unpack('h', pack('H', d))[0] comData = complex(e,f) datalist.append(comData) datalist2.append(datalist) datas = np.array(datalist2) datast = datas.T fileMatPath = filePath+"\\"+"time_data.mat" io.savemat(fileMatPath,mdict = {'time_data':datast}, oned_as = 'row') print "OK" if __name__ == "__main__": datFile = sys.argv[1] filePath = sys.argv[2] dataConvert = sys.argv[2] dat2mat(datFile,filePath,dataConvert)
相关文章推荐
- Go语言中其他数据与字符串类型的转换
- Go语言内部rpc简单实例,实现python调用go的jsonrpc小实例
- Go语言中转换JSON数据简单例子
- 高性能数据序列化库,可序列化为binary,也可序列化为json,支持C++ java python php objectc 语言,兼容json数据格试,可以互相转换,跨语言交换数据,网络传输,远程调
- python自动化--语言基础一数据类型及类型转换
- GO语言的一些简单数据类型之间相互转换
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- C++与Python的混合编程-调用有参函数以及C++数据类型与Python数据类型间的转换
- Go语言调用python调用matlab,实现matlab并行运行
- Go语言中其他数据与字符串类型的转换
- C#调用PMAC运动控制卡的pcomm32动态链接库的数据类型转换
- [python]通达信历史日线数据解析转换为CSV文件进行存储
- 利用python调用elasticsearch-api来分析数据并作图进行日报邮件发送
- 7057-1.Python数据可视化:利用matplotlib中的subplot进行图中图展示
- 第七次课:Python帮助和数据类型转换
- 【转】Python数据可视化利器Matplotlib,colors系列,颜色的指定形式
- go语言string、int、int64互相转换(转载)
- 大数据全栈式开发语言 – Python
- Python学习笔记一:数据类型转换
- Go 语言中数据类型的判断