Source code for spike.util.readwrite_tools

#!/usr/bin/env python 
# encoding: utf-8

from __future__ import print_function
import numpy as np
import unittest
import json

'''
Utilities for reading and writing
'''

[docs]def write_json(data, file_name): ''' Save numpy data ''' with open(file_name, mode='w') as f: json.dump(data.tolist(), f)
[docs]def read_json(file_name): with open(file_name) as f: d = np.array(json.load(f)) return d
[docs]def read(f): """ reads Orbitrap .dat FID files returns a numpy array with the FID """ with open(f,'rb') as F: for l in F: if l.startswith("Data Points"): # find the number of data points print(re.findall(r'\d+', l)[0]) # extract this number if l.startswith("Data:"): # find where begin the data storage. break buf = np.fromfile(F, dtype = 'f4') # read the data from the preceding stop point. return np.array(buf)
[docs]class readwrite_test(unittest.TestCase):
[docs] def test_json_numpy1D(self): print("######## numpy 1D ") a = np.arange(53)/2.23 print(a.dtype) write_json(a, 'test_save_a.js') b = read_json('test_save_a.js') print("(b-a)[0] ",(b-a)[0]) print(b.dtype)
[docs] def test_json_numpy2D(self): print("######## numpy 2D ") a = np.random.randn(10,5) print("a.dtype ",a.dtype) print("a.shape ", a.shape) write_json(a, 'test_save_a.js') b = read_json('test_save_a.js') print("(b-a)[0] ",(b-a)[0]) print("b.dtype ",b.dtype) print("b.shape ", b.shape)
if __name__ == '__main__': unittest.main()