Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我在模块pickle的书架上有几个问题?_Python - Fatal编程技术网

Python 我在模块pickle的书架上有几个问题?

Python 我在模块pickle的书架上有几个问题?,python,Python,第一个问题:在打开新书架时,我应该传递什么作为第一个参数。我环顾四周,看到了一些不同的参数 s = shelve.open("pickles2.dat") shelve.open(filename, flag='c', protocol=None, writeback=False) database = shelve.open(filename.suffix) 我应该遵循什么标准 第二个问题:打开后,向工具架添加新数据并使用shelve.close()方法。你如何打开同一个书架来写更多

第一个问题:在打开新书架时,我应该传递什么作为第一个参数。我环顾四周,看到了一些不同的参数

s = shelve.open("pickles2.dat")  
shelve.open(filename, flag='c', protocol=None, writeback=False) 

database = shelve.open(filename.suffix)
我应该遵循什么标准

第二个问题:打开后,向工具架添加新数据并使用shelve.close()方法。你如何打开同一个书架来写更多的东西?例如,假设我使用了我在上面打开的同一个架子,然后关闭了它,现在我想再次打开它。我会使用与第一次打开书架时相同的代码行吗

s = shelve.open("pickles2.dat") 

对于第一个问题:
标志
协议
写回
是可选参数。因此,只要您对默认值满意,就不想列出或修改它们

第二个问题:是的,你再打开一次

以下是一个例子:

import shelve
s = shelve.open("pickles2.dat")
s['1plus1']='2'
s['2plus2']='4'
s.close()

s = shelve.open("pickles2.dat")
print s['1plus1']
s['3plus3']='zero'
s.close()

s = shelve.open("pickles2.dat")
print s
输出:

2
{'1plus1': '2', '3plus3': 'zero', '2plus2': '4'}

那块瓷砖坏了!你应该在标题中加入一些问题。你有没有。。。试过了吗?(是的,只要重新打开书架,这就是序列化的全部意义)非常感谢,这很有帮助。