"r" (read): 只读 。必须打开一个已有的文件,且只能执行读操作。
"r+": 读+写。与 “r” 类似也是必须打开一个已有的文件。读写不分先后(即随时都可以进行读或写)
注意(1):“r+” 所写内容是追加在文件末尾的, 同一内容多次运行并不会多次写入
比如:运行以下代码段多次,文件中并不会多次写入"hello world"
想要重复写入多次,可使用循环。
注意(2):若要在写入文件后读出所写内容,需要加入代码:file.seek(0),否则将返回空字符串(file指的是文件夹名称)。w+,a+模式也一样
Reason:内容被写入后,光标自动移动到内容末尾,此时直接进行read将返回空字符串。但是使用file.seek(0)会将光标移动到开头,此时可以正确读出内容。
注意(3):"r+"模式下写之前可以直接使用read读出文件中内容(因为光标在开头)。但是"a+"模式下写之前不能读出文件夹内容(即使文件存在且有内容),因为append模式下打开文件时光标在末尾。
"w"(write) : 只写。若打开的是已存在文件,则清空文件中原有内容,将新内容写入。 若要打开的文件不存在,则在当前.py文件夹下自动创建要打开的文件,然后将新内容写入。
"w+": 写+读。与"w"模式类似,但可以读。
注意:由于"w+"在打开文件时就会清空文件夹内容,所以若要读,则应该先写入内容。否则返回空字符串。
"a"(append): 追加写。只能写但不能读(写是追加在原有文件内容的末尾) 若打开已存在文件则直接对文件操作,若打开文件不存在则在当前.py文件夹下创建新文件进行操作。
"a+": 追加读写。与"a"模式类似,但可以读。"a+"模式下读参考注意(2)(3)