当前位置: 首页 > 面试题库 >

文件对象中的rb模式和r + b模式有什么区别

易嘉胜
2023-03-14
问题内容

我在Python中使用pickle模块并尝试了不同的文件IO模式:

# works on windows.. "rb"
with open(pickle_f, 'rb') as fhand:
        obj = pickle.load(fhand)

# works on linux.. "r"
with open(pickle_f, 'r') as fhand:
        obj = pickle.load(fhand)

# works on both "r+b"
with open(pickle_f, 'r+b') as fhand:
        obj = pickle.load(fhand)

我从没在任何地方读过“ r +
b”模式,但是在文档中发现有提及。

我得到EOFError在Linux上,如果我使用的"rb"模式,在windows下"r"使用。我只是给了"r+b"模式一个镜头,它在两个上都起作用。

什么"r+b"模式?“ rb”和“ r + b”有什么区别?为什么其他人不起作用呢?


问题答案:

r+用于读取和写入模式。b用于二进制。 r+b模式是在读取或写入模式下打开二进制文件。
您可以在这里阅读更多内容。



 类似资料:
  • 问题内容: 我尝试在C中使用fopen,第二个参数是打开模式。两种模式“ r”和“ rb”往往使我感到困惑。看来他们是一样的。但是有时最好使用“ rb”。那么,为什么“ r”存在?向我详细说明或提供示例。谢谢。 问题答案: 您应该使用它来打开文本文件。不同的操作系统存储文本的方式略有不同,这将执行正确的翻译,因此您无需了解本地操作系统的特质。例如,您将知道换行符将始终显示为simple ,而不管代

  • 在我的程序中,我使用了#.#在中,如下所示: 我错误地添加了一个额外的如下所示: 但这并不影响我的输出。我尝试过使用不同的输入组合。输出没有差异。尝试过谷歌,但没有正确的解释。 那么使用“#.##”和“##.#”的确切区别是什么呢? 如果两者都是相同的,为什么Java中允许这样做? 如果两者都不同,为什么在这两种情况下输出是相同的? 编辑: 示例程序: 输出:

  • 问题内容: 谁能解释工厂模式与策略模式之间的差异? 对我来说,除了一个额外的工厂类(它们以工厂模式创建产品的对象)外,两者看起来都一样 问题答案: 工厂模式是一种创造模式。战略模式是一种运营模式。换句话说,工厂模式用于创建特定类型的对象。策略模式用于以特定方式执行一个操作(或一组操作)。在经典示例中,工厂可能会创建不同类型的动物:狗,猫,老虎,而策略模式将执行特定的动作,例如,移动;使用“跑步”,

  • 问题内容: 我想知道是否有人可以区分这两者,两者的命名都相似。 问题答案: Docker Swarm 是一个单独的产品,可用于群集多个Docker主机。在Docker 1.12版本之前,它是用于群集主机的唯一本地Docker选项,并且它需要针对分布式状态,服务发现和安全性进行大量附加设置。 在Docker 1.12中,Swarm模式内置在Docker Engine中。要运行集群,您只需要在多台机器

  • 本文向大家介绍在history模式中push和replace有什么区别?相关面试题,主要包含被问及在history模式中push和replace有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 push(''):添加一个新的记录到历史堆栈, history.length+1。(一般会用来跳转到一个新页面, 用户点击浏览器的回退按钮可以回到之前的路径。) replace(''):替换掉当前堆栈

  • 问题内容: 我在这里阅读了我的问题的解释: https://discuss.elastic.co/t/whats-the-differece-between-index-pattern-and- index-template/54948 但是,我仍然不明白区别。定义索引PATTERN时,它根本不会影响索引的创建吗?另外,如果我创建索引但没有相应的索引模式,会发生什么情况?我如何查看用于索引模式的映