python中的DAT文件

python中的DAT文件,python,encoding,Python,Encoding,Python中的.dat文件有一个问题:我无法对其进行编码。我尝试过UTF-8、ASCII和更多 import re with open("mixture1.dat",'r', encoding="ascii", errors="surrogateescape") as f: lines = f.readlines() text = "".join(lines) print(text) 下面是“

Python中的.dat文件有一个问题:我无法对其进行编码。我尝试过UTF-8、ASCII和更多

import re

with open("mixture1.dat",'r', encoding="ascii", errors="surrogateescape") as f:
    lines = f.readlines()
    text = "".join(lines)

print(text)
下面是“mixture1.dat”的示例。应该有化学方面的东西,但我一个星期都没能打开。我该怎么做

编辑:解决方案

import pickle

def read_file(filename):
    with open(filename,  'rb')  as  FID:
        mp  = pickle.Unpickler(FID)
        data = mp.load()
    return data
工作正常

您可以使用:

import numpy as np
data = np.fromfile('mixture1.dat', dtype=float)

print(data.size)
print(data[:20])
输出:

23767
[ 5.43235748e-312  7.01653493e-205  3.63521590e+228  9.77081644e+199
  4.03065734e-277 -2.37251204e-214  9.10016855e+276  4.27255706e+180
 -2.89898361e-211 -8.83065826e-211  3.49131717e+070  1.91561942e+053
 -3.80240360e-210  2.67555322e-318 -8.83065517e-211 -5.81601764e+181
 -5.71181552e-277  8.93904783e+014  3.37067979e-234  3.07882662e-292]


这样打开二进制文件是不可能成功的。字符串表示“numpy.core.multiarray”。看看我该怎么办?我应该打开它,它对应于两个分子的混合物,这些数字是什么意思?它是文件头还是文件本身中的数字?因为数据是在一个二进制文件中给出的,10001个值对应于在100 ps的时间步长下测量1µs的标准化荧光信号。我从的理解是,数字是文件本身的数据。我有多个此类文件。偶数指数中的数字相同[1.10687736e+193-3.04853105e+012-8.83065517e-2117.82932173e+185-5.71172958e-277 8.93904783e+014-1.21750579e+288 3.07882662e-292 3.90254972e+267 6.53306071e+089][1.10687736e+193-7.264287739E+192-8.83065517e-2113.217486662E+272-5.71171472e-277 8.93904783e+014-2.18020972e+2713.07882662e-292-1.42643138e-2386.53306071e+089]@SamadzadeMuhammed您应该向创建您的.dat文件的人询问数字的含义。我们只能帮助您解码该文件,但无法告诉您其含义。