In [1]:
import os
In [2]:
os.getcwd()
Out[2]:
In [3]:
clear
In [4]:
import struct
In [5]:
f = open('sample.wav', 'rb')
In [6]:
info = f.read(44)
In [7]:
info
Out[7]:
In [9]:
struct.unpack('h', b'\x01\x02')
In [10]:
struct.unpack('>h', b'\x01\x02')
In [11]:
clear
In [12]:
struct.unpack('>h', info[22:24])
In [13]:
info
In [14]:
struct.unpack('h', info[22:24])
In [15]:
struct.unpack('h', info[24:28])
In [16]:
struct.unpack('i', info[24:28])
In [17]:
struct.unpack('i', info[34:36])
In [18]:
struct.unpack('h', info[34:36])
In [19]:
import array
In [20]:
%ls
In [21]:
os.getcwd()
In [22]:
clear
In [23]:
f.seek(0, 2)
In [24]:
f.tell()
In [25]:
n = (f.tell() - 44) / 2
In [26]:
n
In [27]:
n = (f.tell() - 44) // 2
In [28]:
n
In [29]:
buf = array.array('h', (0 for _ in range(n)))
In [30]:
f.seek(44)
In [31]:
f.readinto(buf)
In [32]:
buf
In [33]:
clear
In [34]:
len(buf)
In [35]:
for i in range(n):
buf[i] // = 8
In [36]:
for i in range(n):
buf[i] //= 8
In [37]:
f2 = open('demo2.wav', 'wb')
In [38]:
f2.write(info)
In [39]:
buf.tofile(f2)
In [40]:
f2.close()
In [41]:
%save?
In [42]:
%save 5_1_read_bin_file.py 1-41
In [43]:
%notebook?