1
wally=pickle.load(open("The Wall.txt","rb"))
usernamey=pickle.load(open("username1.txt","rb"))
wu=("\n", wally, "\n", usernamey, "\n")
apost=input("Enter your post below: \n")
pwickle=pickle.dump(wu, apost, open("The Wall.txt","wb"))

不知道为什么这不起作用,出现错误消息:

pwickle=pickle.dump(wu, apost, open("The Wall.txt","wb"))

TypeError: an integer is required
4

2 回答 2

4

正如 unutbu 所指出的,第三个参数是协议。您应该将要腌制的所有对象分组在一个元组中,如下所示:

pwickle=pickle.dump((wu, apost), open("The Wall.txt","wb"))

如果您需要腌制大量数据,您可以使用shelve像字典一样操作的模块。

顺便说一句,pickle 创建的文件是二进制的(或者至少不是人类可读的,取决于协议),所以我不会命名它们.txt.db.pickle或者类似的东西会更好。

于 2012-10-13T17:57:33.107 回答
1

第三个参数指定协议,它应该是一个整数,0、1或2。

于 2012-10-13T17:50:55.840 回答