在我的主要代码中,我定义了一个类:
ln -s /usr/local/Cellar/gcc\@5/5.5.0_6/bin/gcc-5 /usr/local/bin/gcc
ln -s /usr/local/Cellar/gcc\@5/5.5.0_6/bin/gfortran-5 /usr/local/bin/gfortran
ln -s /usr/local/Cellar/gcc\@5/5.5.0_6/lib/gcc/5/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib
ln -s /usr/local/Cellar/gcc\@5/5.5.0_6/lib/gcc/5/libquadmath.0.dylib /usr/local/lib/libquadmath.0.dylib
此后,我定义了一个变量,它将包含该类的所有信息:
class flowsprop:
def __init__(self, name_nozzle, mach_jet, u_jet, uc, baseflowtype, d_jet, ts_jet, c_jet, kh, ka, gamma,
Re, Pr, m_lst, baseflowpath, baseflowanafit, baseflowsubfolder,baseflowfile,m):
self.name_nozzle = name_nozzle
self.mach_jet = mach_jet
self.u_jet = u_jet
self.uc = uc
self.baseflowtype = baseflowtype
self.d_jet = d_jet
self.ts_jet = ts_jet
self.c_jet = c_jet
self.kh = kh
self.ka = ka
self.gamma = gamma
self.Re = Re
self.Pr = Pr
self.m_lst = m_lst
self.baseflowpath = baseflowpath
self.baseflowanafit = baseflowanafit
self.baseflowsubfolder = baseflowsubfolder
self.baseflowfile = baseflowfile
self.m = m
在代码编写过程中,我使用了很多功能,其中包含flowsrc = flowsprop('dummy',mach_jet,0.0,0.0,baseflowtype_str,d_jet,flowamb.ts_amb,flowamb.c_amb,np.nan,0.0,gamma,
Re,Pr,m_lst,baseflowpath,baseflowanafit,baseflowsubfolder,baseflowfile,m)
信息,例如:flowsrc
,flowsrc.m
,flowsrc.baseflowfile
等
我想保存flowsrc.baseflowsubfolder
的所有信息以在另一个代码中使用,所以我使用flowsrc
:
pickle command
现在的问题是当我以新代码加载此文件时:
import pickle
# Save data
result_dict = {
'flowsrc_stability':flowsrc}
# filename and path
filename = specsanalysis.pathoutput+'results_pse_st'+st_str+'_m'+str(m)+'.pickle'
with open(filename, 'wb') as handle:
pickle.dump(result_dict, handle)
错误:
import pickle
filename = '/projects/jet_noise_wavepacket/10_CODE/50_PHD_MATEUS/PSE_Python/output/output-20201109-1730/results_pse_st040_m0.pickle'
with open(filename, 'rb') as handle:
new_dict = pickle.load(handle)
我认为我必须在新代码的开头导入Traceback (most recent call last):
File "test.py", line 6, in <module>
new_dict = pickle.load(handle)
File "/share/giseh_fr0_prod/anaconda/2/RedHatEL-7/x86_64/lib/python2.7/pickle.py", line 1384, in load
return Unpickler(file).load()
File "/share/giseh_fr0_prod/anaconda/2/RedHatEL-7/x86_64/lib/python2.7/pickle.py", line 864, in load
dispatch[key](self)
File "/share/giseh_fr0_prod/anaconda/2/RedHatEL-7/x86_64/lib/python2.7/pickle.py", line 1096, in load_global
klass = self.find_class(module, name)
File "/share/giseh_fr0_prod/anaconda/2/RedHatEL-7/x86_64/lib/python2.7/pickle.py", line 1132, in find_class
klass = getattr(mod, name)
AttributeError: 'module' object has no attribute 'flowsprop'
,但是如果这样做,那么新代码将先运行所有旧代码,然后再运行新代码,我想避免这种情况。
将flowsprop
的信息保存在泡菜文件中最简单/最好的方法是什么?