在服务器上读取pickle文件报错ImportError: No module named copy_reg
在服务器上python2环境中读取pickle文件,报错ImportError: No module named copy_reg。这是因为Windows和Linux的pickle文件的存储格式不同。在windows中新行的符号存储成"\r\n",而在Linux中,新行的符号存储成"\n",因此,当在Linux上读取pickle文件出错时,应该朱行读取pickle文件,将其中的"\r\n"替换成"
·
在服务器上python2环境中读取pickle文件,报错ImportError: No module named copy_reg。这是因为Windows和Linux的pickle文件的存储格式不同。在windows中新行的符号存储成"\r\n",而在Linux中,新行的符号存储成"\n",因此,当在Linux上读取pickle文件出错时,应该朱行读取pickle文件,将其中的"\r\n"替换成"\n",然后将其写回到文件中。
代码:
#run this code on Linux platform
DIR="your/dir/to/file"
pickle.load(open(DIR,"rb"))
# ImportError: No module named copy_reg pickle
a=open(DIR,"rb").readlines() #read pickle file line by line
a=map(lambda x:x.replace("\r\n","\n"),a) # replace \r\n with \n
with open(DIR,"wb") as j: #write back to file in binary mode
for i in a:
j.write(i)
pickle.load(open(DIR,"rb"))
#Now it works well
这样就解决了问题
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)