Python使用pickle模块报错EOFError Ran out of input的解决方法

yipeiwu_com6年前Python基础

本文实例讲述了Python使用pickle模块报错EOFError Ran out of input的解决方法。分享给大家供大家参考,具体如下:

遇到了 EOFError:Ran out of input 不到为什么这样,最后用捕获异常的办法解决掉了,暂时对程序本身没有啥影响,代码如下:

# coding=utf-8
import pickle
def usr_date():
  try:
    with open('usr_date.pkl','rb') as f:
      return pickle.load(f)
  except EOFError: #捕获异常EOFError 后返回None
    return None
def update_usr(usr_dic):
  with open('usr_date.pkl','wb') as f:
     pickle.dump(usr_dic,f)
def register():
  '注册'
  usr_dic = {}
  usr_name = input('请输入用户名')
  open_date = usr_date() if usr_date() else {}
  if usr_name in open_date.keys():
    print('用户已存在,请登录')
    return False
  usr_password = input('请输入你的密码:')
  usr_dic[usr_name] = usr_password
  update_usr(usr_dic)
  return print('注册成功')
def Sign_in():
  '登录'
  pass
def login_index():
  while True:
    usr = input('1.注册 2.登录 0.退出')
    if usr == '1':
      register()
    elif usr =='2':
      Sign_in()
    else:
      break

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python编程学习之如何判断3个数的大小

前言 大部分初学编程的人来说刚开始都会练习判断两个数或者三个数的大小,来熟悉某种语言的特性和最基本的if,else循环,当我们学习了更高级的语法知识后,又会有不同的实现方式,比如这道练习...

轻松掌握python设计模式之策略模式

轻松掌握python设计模式之策略模式

本文实例为大家分享了python策略模式代码,供大家参考,具体内容如下 """ 策略模式 """ import types class StrategyExample: def...

分享Python开发中要注意的十个小贴士

大家请注意:这篇文中假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子: [2...

python使用PyV8执行javascript代码示例分享

安装相应的库,我使用的是PyV8 需要注意的是里面写的function函数需要用()括起来 复制代码 代码如下:import PyV8 class Test():   ...

Django Celery异步任务队列的实现

背景 在开发中,我们常常会遇到一些耗时任务,举个例子: 上传并解析一个 1w 条数据的 Excel 文件,最后持久化至数据库。 在我的程序中,这个任务耗时大约 6s,对于用户来说,...