在Python中,为什么"r+"而不是"rw"用来表示"read & write"?

  • 本文关键字:rw 表示 read write Python python
  • 更新时间 :
  • 英文 :


在 Python 中,打开文件时,我们使用'r'来表示只读和'w'只写。然后我们用'r+'来表示"读写"。

为什么不使用'rw''rw'不是看起来比'r+'更自然吗?


1月25日编辑:

哦。。我想我的问题看起来有点令人困惑。我想问的是:'r'是"阅读"的第一个字母,'w'"写"的第一个字母,所以'r''w'看起来很自然地映射到"读"和"写"。但是,当涉及到"读写"时,Python使用"r+"而不是'rw'

所以问题实际上是关于命名原理,而不是它们之间的行为差异。

Python 从

C 的 fopen() 调用中复制模式。 r+是C语言使用的,Python坚持了40年前的惯例。

不要把它当作纯英语,r+实际上意味着read extendedPython!=English. 所有语言都有基本规则,@John Kugelman提到的,Python坚持使用旧规则。

这是发生的情况:

>>> f1 = open("blabla.txt", 'rw');
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> f1=open("blabla.txt",'rw')
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    f1=open("blabla.text",'rw')
ValueError: must have exactly one of create/read/write/append mode

这就是核心 python 中配置读/写/追加函数的方式。有人会说这与旧的 c 样式 fopen() 指令r w r+等有关。

最新更新