Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正在将numpy.random.get_state()写入文件_Python_File_Python 2.7_Numpy_Tuples - Fatal编程技术网

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))