Pickle问题写入文件

时间:2011-06-12 11:46:31

标签: python pickle

我在Python中使用Pickle编写文件时遇到问题

这是我的代码:

test = "TEST"
f1 = open(path+filename, "wb", 0)
pickle.dump(test,f1,0)
f1.close()
return

这使我在.txt文件中的输出为VTESTp0.我不知道为什么会这样? 它不应该只是保存为TEST吗?

我对pickle很新,直到今天我才知道它存在,如果我问一个愚蠢的问题,那就很抱歉。

2 个答案:

答案 0 :(得分:5)

不,pickle不会像字符串那样写字符串。 Pickle是一个序列化协议,它将对象转换为字节串,以便您以后可以重新创建它们。实际格式取决于您使用的协议版本,但您应该将pickle数据视为不透明类型。

如果要将字符串"TEST"写入文件,只需编写字符串本身即可。不要打扰泡菜。

答案 1 :(得分:0)

将pickle视为将二进制数据保存到磁盘。如果你的程序中的数据结构像一个大字典或数组,这需要一些时间来创建,这很有趣。您可以将它们保存到带有pickle的文件中,并在下次运行程序时使用pickle读取它们,从而节省构建数据结构所需的时间。缺点是其他非Python程序将无法理解pickle文件。

由于pickle非常通用,你当然也可以将简单的文本字符串写入pickle文件。但是如果你想进一步处理它们,例如在文本编辑器或其他程序中,您需要逐字存储它们,正如Thomas Wouters建议的那样:

test = "TEST"
f1 = open(path+filename, "wb", 0)
f1.write(test)
f1.close()
return