写入文件时出现Pickle问题



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

这是我的代码:

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

这给了我.txt文件中的输出VTESTp0.。我不确定为什么会这样?它不应该被保存为TEST吗?

我是pickle的新手,直到今天我才知道它的存在,所以很抱歉我问了一个愚蠢的问题。

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

如果要将字符串"TEST"写入文件,只需写入字符串本身即可。别为泡菜而烦恼。

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

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

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

最新更新