Python 正在将numpy.random.get_state()写入文件
Python 正在将numpy.random.get_state()写入文件,python,file,python-2.7,numpy,tuples,Python,File,Python 2.7,Numpy,Tuples,numpy.random.get_state()返回一个元组。我想将其写入一个文件,以便在以后需要时使用相同的状态 我得出以下结论,但csv抛出一个错误: import csv import numpy as np def write_state(): with open("state_file", "w") as file: csv.register_dialect("custom", delimiter=" ", skipinitialspace=True)
numpy.random.get_state()
返回一个元组。我想将其写入一个文件,以便在以后需要时使用相同的状态
我得出以下结论,但csv
抛出一个错误:
import csv
import numpy as np
def write_state():
with open("state_file", "w") as file:
csv.register_dialect("custom", delimiter=" ", skipinitialspace=True)
writer = csv.writer(file, dialect="custom")
for val in np.random.get_state():
writer.writerow(val)
回溯:
File "MCVE.py", line 21, in <module>
write_state()
File "MCVE.py", line 11, in write_state
writer.writerow(val)
_csv.Error: sequence expected
文件“MCVE.py”,第21行,在
写入状态()
文件“MCVE.py”,第11行,处于写入状态
writer.writerow(val)
_csv.错误:应为序列
将np.random.get_state()
写入文件的合适方法是什么,这样np.random.set_state()
以后可以使用存储的信息?尝试替换该行
writer.writerow(val)
用这个
writer.writerow([val])
Python内置的cPickle.dump/load
可以高效地写入和读取许多对象,例如元组
书写
阅读
好吧,就是这样。将其读回np.random.set_state()
,与此相反的是什么?如果事后无法正确加载,那么以任何格式编写都没有意义。工作起来就像一个符咒:-)
from cPickle import dump
import numpy as np
with open('state.obj', 'wb') as f:
dump(np.random.get_state(), f)
from cPickle import load
import numpy as np
with open('state.obj', 'rb') as f:
np.random.set_state(load(f))