在Python中,为什么'r +'而不是'rw'用来表示"读写"?

yao*_*bin 20 python

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

为什么不用'rw'?没有'rw'看上去比更自然'r+'


1月25日编辑:

呵呵..我想我的问题看起来有点混乱..我试图问的是:'r'是的"读"的第一个字母'w'的"写",因此第一个字母'r''w'看起来自然映射到"读"和"写".但是,当涉及到"读写"时,Python使用'r +'代替'rw'.

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

Joh*_*ica 34

Python从C的fopen()调用中复制模式.r+是C使用的,而Python则坚持了40年的惯例.

  • `r +`,`w +`和`a +`做了三件不同的事情,而且``fopen`是*真正老的*C库接口之一 - 如果你传递`rw`,原始实现可能会做一些荒谬的事情,所以C89只是禁止你这样做.POSIX`open`函数及其三向选择`O_RDONLY`,`O_WRONLY`,`O_RDWR`,然后是一堆修饰符一直让我感到更加符合人体工程学设计. (9认同)
  • 请注意,还有w +和a +.他们可以命名为wr和ar,但我认为有人认为r +,w +和a +在某种程度上更好.这并不是说你可以任意组合它们并且仍然有意义.例如,aw没有意义.因此,为每种模式设置不同的名称比允许组合模式更有意义. (4认同)