In [1]:
In [2]:
import csv
import numpy as np
import mmap
import struct
In [3]:
results = []
with open("0002.asc") as f:
for line in f:
results.append(int(line.split()[2]))
data = np.asanyarray(results)
In [127]:
INT_TYPES = ('i', 'I', 'l', 'L', 'q', 'Q')
FLOAT_TYPES = ('f', 'd')
TOSEARCH = 1.4
BASEFILE = 'data/2dc0001.'
for m in map(lambda x: 10**x, range(-10, 10)):
to_search = m*TOSEARCH
for ext in ('MD1', '4M2'):
name = BASEFILE + ext
with open(name, 'r+b') as f:
raw = mmap.mmap(f.fileno(), 0)
types = FLOAT_TYPES
if isinstance(to_search, int):
types =+ INT_TYPES
for t in types:
for d in ('<'):
if t in INT_TYPES:
packed = struct.pack(d+t, int(to_search))
else:
packed = struct.pack(d+t, float(to_search))
cont = packed in raw[:]
if cont :
print to_search, name, d+t, raw[:].index(packed)
In [97]:
with open('2dc0002.4M2', 'r+b') as f:
raw = mmap.mmap(f.fileno(), 0)
for t in ('i', 'I', 'l', 'L', 'q', 'Q'):
for d in ('<', '>'):
#print(d+t)
packed = struct.pack(d+t, 18.8)
cont = packed in raw[:]
if cont :
print d+t
print raw[:].index(packed)
In [4]:
In [47]:
packed = struct.pack( '<l', 3106)
packed in raw
Out[47]:
In [33]:
packed in raw
Out[33]:
In [20]:
with open('2dc0001.MD1', 'r+b') as f:
raw = mmap.mmap(f.fileno(), 0)
print 'oment' in raw
In [31]:
data
Out[31]:
In [21]:
with open('2dc0001.MD1', 'r+b') as f:
raw = mmap.mmap(f.fileno(), 0)
unpacked = struct.unpack_from('<256L', raw[:], 2058)
In [56]:
with open('2dc0002.MD1', 'r+b') as f:
raw = mmap.mmap(f.fileno(), 0)
unpacked = struct.unpack_from('< 2058x 256L 1787x 10s 194x 8s 60x 8s', raw[:])
In [53]:
raw[:].index('19:10:58')
Out[53]:
In [54]:
5141-2058-256*4-1787-10-194-8
Out[54]:
In [55]:
unpacked[-2:]
Out[55]:
In [ ]: