在Python语言中,当打开一个文件时,我们使用'r'
来表示只读和'w'
只写。然后我们使用'r+'
来表示“读写”。
为什么不使用'rw'
?'rw'
看起来不比'r+'
更自然吗?
1月25日编辑:
哦..。我想我的问题看起来有点迷惑..我想问的是:'r'
是“read”的第一个字母,'w'
是“write”的第一个字母,所以'r'
和'w'
看起来很自然地映射到“read”和“write”。然而,当涉及到“读写”时,Python使用“r+”而不是'rw'
。
因此,问题实际上是关于命名的基本原理,而不是它们之间的行为差异。
发布于 2015-01-23 08:16:19
Python复制了C's fopen()
call中的模式。C使用的是r+
,而Python则沿用了40年的传统。
发布于 2015-01-23 08:23:02
不要把它当作纯粹的英语,r+
的意思是read extended
实际上,Python!=English.
所有的语言都有基本的规则,@John Kugelman提到,Python坚持使用旧的。
发布于 2015-01-23 08:17:57
这就是发生的事情:
>>> 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+‘等等有关。
https://stackoverflow.com/questions/28100993
复制相似问题