zoukankan      html  css  js  c++  java
  • 6.3.3 使用 shelve 模块操作二进制文件

      Python标准库shelve也提供了二进制文件操作的功能,可以像字典赋值一样来写入二进制文件,也可以像字典一样读取二进制文件,有点类似于NoSQL数据库MongoDB。

    import shelve
    
    fp = shelve.open('shelve_test.dat')  #创建或打开二进制文件
    zhangsan = {'age':38,'sex':'Male','address':'SDIBT'}
    fp['zhangsan'] = zhangsan   #往文件里写入内容
    
    lisi = {'age':40,'sex':'Male','qq':'1234567','tel':'7654321'}
    fp['lisi'] = lisi
    
    fp.close()
    
    f = shelve.open('shelve_test.dat')
    print(fp['zhangsan']['age'])
    print(fp['lisi']['qq'])
    
    fp.close()
    
    ===========执行报错如下
    Traceback (most recent call last):
      File "C:UsersddddAppDataLocalProgramsPythonPython35libshelve.py", line 111, in __getitem__
        value = self.cache[key]
    KeyError: 'zhangsan'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:/Users/dddd/AppData/Local/Programs/Python/Python35/test1.py", line 13, in <module>
        print(fp['zhangsan']['age'])
      File "C:UsersddddAppDataLocalProgramsPythonPython35libshelve.py", line 113, in __getitem__
        f = BytesIO(self.dict[key.encode(self.keyencoding)])
      File "C:UsersddddAppDataLocalProgramsPythonPython35libshelve.py", line 70, in closed
        raise ValueError('invalid operation on closed shelf')
    ValueError: invalid operation on closed shelf
    
    
    #在Pycharm 上就报这个错,暂时不知道如何解决
     1 >>> import shelve
     2 >>> fp=shelve.open('shelve.dat')
     3 >>> zhangsan = {'age':38,'sex':'Male'}
     4 >>> fp['zhangsan'] = zhangsan
     5 >>> fp.close
     6 
     7 >>> f = shelve.open('shelve_test.dat')
     8 >>> fp['zhangsan']['age']
     9 38
    10 >>> 
  • 相关阅读:
    Postgresql HStore 插件试用小结
    postgres-xl 安装与部署 【异常处理】ERROR: could not open file (null)/STDIN_***_0 for write, No such file or directory
    GPDB 5.x PSQL Quick Reference
    postgresql 数据库schema 复制
    hive 打印日志
    gp与 pg 查询进程
    jquery table 发送两次请求 解惑
    python 字符串拼接效率打脸帖
    postgresql 日期类型处理实践
    IBM Rational Rose软件下载以及全破解方法
  • 原文地址:https://www.cnblogs.com/avention/p/8779758.html
Copyright © 2011-2022 走看看