我正在尝试使用 Python 读取“.cnt”文件。我的理解是它对来自脑电图的信息进行编码。我以标准方式读取文件:
file = open("PICS2s8.cnt","rb") #I get the same results with 'r' instead of 'rb'
data = file.readlines()
当我检查文件的第一行时,我看到:
'Version 3.0\x00\xe3\x00J\x04\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00UU\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0013/10/05\x00\x0011:28:07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80?\x00\x00\x00\x00\x00\x00\x00\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x02\x00\x00\x00\x00\x00\x10\'\x01\x00\x00\x00\x00\x00\x8b\x02 \x00\x01\x00\x00\x00\xf4\x01\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00 A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x003\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00zD\x00\x00\x00\x00\x00\xcd\xcc\xcc\xbd\x00\x00\x00\x00\x00\xcd\xcc\xcc\xbd\x9a\x99\x99?\x00\x00H\xc2\x00\x00HB\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xc2\x00\x00\xf0B\xcd\xcc\xcc\xbd#\xdb\x99?\xcd\xcc\xcc\xbd#\xdb\x99?\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xcc\xcc\xbd\x9a\x99\x99?\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ffF@\xc8\x00d\x00\x9c\xff\xf4\x01ffF@\x8f\xc2\xf5<\x00\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00--------\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa?\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2p}B\xb5\x1e\x8eA\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\xfc\xff?\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xe4\xc8I\x04\x00\x00\x00\x00\x01\x00\x00\x00\x00PO2\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00)\\\xa7C\xd3\xcd3C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x1d\x00\x00\x15t\x84?O1\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00ff6C/\xbd4C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x0e\x01\x00\x16\xf0\x83?M2\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00\x90\xc2\xf5@\x83\xe0/C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x06\x02\x00K9\x84?PZ\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00\xebQ\x80C\x1b\x8f\x1aC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x06\x03\x00\x15t\x84?P4\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00)\\\xa7C\xfa\xbe\x1aC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x05\x04\x00\xdc\xbd\x84?CP4\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00R\xb8\xa6CZd\xfdB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x07\x05\x00H\xea\x84?P8\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00\x90\xc2\xcdC\xfa\xbe\x1aC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x0b\x06\x00\x15t\x84?C4\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00\x90\xc2\xa5CJ\x0c\xc3B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x05\x07\x00Q\xc4\x83?TP8\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00\xa4p\xcdCZd\xfdB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x06\x08\x00\xf8G\x84?T8\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00\xb8\x1e\xcdCJ\x0c\xc3B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00\x05\t\x00\x1em\x83?P7\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x01\x01\x00\x01\x00\x00\x00q=\xcaB\xfa\xbe\x1aC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x89A\x03\x00\x00\x00\x00"\n'
恐怕我真的不知道如何开始理解这一点。我对 ascii 字符串值和字节值的混合感到困惑。我试过了:
data[0].decode('utf-8')
和
data[0].decode('utf-16')
但两者都引发了错误。
我也试过
from struct import unpack, calcsize
file.seek(0)
chunk = file.read(calcsize('25c'))
read_chunk = unpack('25c',chunk)
并得到了结果:
('V', 'e', 'r', 's', 'i', 'o', 'n', ' ', '3', '.', '0', '\x00', '\xe3', '\x00', 'J', '\x04', '\x00', '\x00', '\x00', '\x00', '\x02', '\x00', '\x00', '\x00', '\x00')
我在这里有什么明显的遗漏吗?