我创建了一个加载函数来读取文件。我的问题是数据是我需要解码的数组。
def load(input_file):
f = open(input_file,"rb")
if f.mode == "rb":
contents = f.read()
print(contents)
load('/path/data/text.txt')
结果是我需要解码的以下内容
b'\xc3\x84\x03cjoblib.numpy_pickle\nNumpyArrayWrapper\nq\x00)\
xc3\x85q\x01}q\x02(X\x08\x00\x00\x00subclassq
\x03cnumpy\nndarray\nq\x04X\x05\x00\x00
答案 0 :(得分:2)
数据看起来像是Python的泡菜,应该使用pickle module进行加载
pickle.load(input_file)
答案 1 :(得分:1)
您错过了条件输入,而没有输入。
内容应在if
语句下
def load(input_file):
f = open(input_file,"rb")
if f.mode == "rb":
contents = f.read()
print(contents)
load('/path/data/text.txt')
答案 2 :(得分:1)
您的文件似乎包含pickle
'd data。
假设您信任该文件,则可以使用pickle.load
加载它:
arr = pickle.loads(content)
但是,请注意加载腌制的内容是 super 的危险,因此请确保您完全信任该文件(例如,您知道您创建了该文件并尚未对其进行修改)。
pickle
在某些情况下很有用,例如在两个单独的Python进程之间共享数据。
另一种选择:由于看起来您正在存储numpy
数组,因此使用numpy
的{{3}}函数会更好,更容易(也许更快)。
arr = numpy.arange(10)
arr.tofile('array.bin')
loaded_arr = numpy.fromfile('array.bin', numpy.int)