问题描述:
在使用python的open函数对文件进行打开时,
- 用什么模式打开才最合适?
- 是用r? 还是w? 还是a? ,后面还要不要加个+???
- 读写图片等二进制文件怎么办?
with open('test.txt','打开模式选啥?????') as w:
w.write("要写入的内容")
先上总结:
确定要打开的文件已存在,如果不存在会报错。
- 只读文本文件 ? 用r
- 只读非文本文件(图片等)? 用rb
- 要既读又写? 在后边添个+号增加权限, 用r+ 或者 rb+
不确定要打开的文件是否存在,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被替换。如果该文件不存在,创建新文件。
- 只写文本文件 ? 用w
- 只写非文本文件(图片等)? 用wb
- 要既读又写? 在后边添个+号增加权限, 用w+ 或者 wb+
不确定要打开的文件是否存在,而且想要追加写入(不替换原有内容,新内容写入到已有内容后)。如果该文件不存在,创建新文件。
- 只写文本文件 ? 用a
- 只写非文本文件(图片等)? 用ab
- 要既读又写? 在后边添个+号增加权限, 用a+ 或者 ab+
r系列:
- r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
- r+:打开一个文件用于读写。文件指针将会放在文件的开头。
- rb:以二进制格式打开一个文件用于只读。一般用于非文本文件如图片等。
- rb+ :以二进制格式打开一个文件用于读写。一般用于非文本文件如图片等。
w系列:
- w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
- wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a系列:
- a :打开一个文件用于追加(只写)。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
- ab:以二进制格式打开一个文件用于追加(只写)。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。