Python cPickle.load()错误

Python cPickle.load()错误,python,linux,pickle,Python,Linux,Pickle,我使用cPickle的目的是将结构数据转换为datastream格式并将其传递给库。我要做的事情是从手动编写的文件名“targetstrings.txt”中读取文件内容,并以以下方式将文件内容转换为Netcdf库所需的格式 注意:targetstrings.txt包含拉丁字符 op=open("targetstrings.txt",'rb') targetStrings=cPickle.load(op) Netcdf库将内容作为字符串。 加载文件时,它遇到以下错误: cPickle.Unpic

我使用cPickle的目的是将结构数据转换为datastream格式并将其传递给库。我要做的事情是从手动编写的文件名“targetstrings.txt”中读取文件内容,并以以下方式将文件内容转换为Netcdf库所需的格式

注意:targetstrings.txt包含拉丁字符

op=open("targetstrings.txt",'rb')
targetStrings=cPickle.load(op)

Netcdf库将内容作为字符串。 加载文件时,它遇到以下错误:

cPickle.UnpicklingError: invalid load key, 'A'.
请告诉我如何纠正这个错误,我在谷歌上搜索过,但没有找到合适的解决方案


任何建议,

pickle不是用于读取/写入通用文本文件,而是用于将Python对象序列化/反序列化为文件。如果要读取文本数据,应使用


如果库似乎只是想要一个字符串列表,将每一行作为一个列表元素,那么您只需执行以下操作:

with open('targetstrings.txt', 'r') as f:
    lines=[l for l in f]
# now in lines you have the lines read from the file

如前所述-泡菜不打算以这种方式使用。
如果需要手动编辑要作为Python对象读取并传递给另一个函数的复杂Python对象,那么可以使用很多其他格式,例如XML、JSON和Python文件本身。Pickle使用一个特定于Python的协议,虽然note是二进制的(在协议的版本0中),并且不在Python版本之间更改,但它并不适用于此,甚至不是记录Python对象以进行持久性或通信的推荐方法(尽管它可以用于这些目的).

如何生成
targetstrings.txt
文件?targetstrings.txt是手动生成的文件。我想从这个文件中读取内容并将这些内容传递到库“Netcdf库将内容作为字符串”你的意思是,Netcdf想要一个字符串列表作为输入,每个字符串对应于输入文件的一行?是的,它确实需要sameYes,我知道这一点,但很抱歉我没有正确地传达我的问题。实际上,我已经阅读了文件内容,并希望将这些内容传递到库中。我知道cPickle可以将文件读取内容的格式转换为库所需的格式。我也这么做了,但是遇到了上面提到的错误。你应该编辑你的原始问题并指定所有的上下文(哪个库,它需要什么格式,存储在.txt中的是什么,…),否则你将得不到任何有意义的答案。
with open('targetstrings.txt', 'r') as f:
    lines=[l for l in f]
# now in lines you have the lines read from the file