python文件打开模式选择(r?、a?还是w?)

问题描述:

在使用python的open函数对文件进行打开时,
- 用什么模式打开才最合适?
- 是用r? 还是w? 还是a? ,后面还要不要加个+???
- 读写图片等二进制文件怎么办?


with open('test.txt','打开模式选啥?????') as w:
        w.write("要写入的内容")

先上总结:

  1. 确定要打开的文件已存在,如果不存在会报错。

    • 只读文本文件 ? 用r
    • 只读非文本文件(图片等)? 用rb
    • 要既读又写? 在后边添个+号增加权限, 用r+ 或者 rb+
  2. 不确定要打开的文件是否存在,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被替换。如果该文件不存在,创建新文件。

    • 只写文本文件 ? 用w
    • 只写非文本文件(图片等)? 用wb
    • 要既读又写? 在后边添个+号增加权限, 用w+ 或者 wb+
  3. 不确定要打开的文件是否存在,而且想要追加写入(不替换原有内容,新内容写入到已有内容后)。如果该文件不存在,创建新文件。

    • 只写文本文件 ? 用a
    • 只写非文本文件(图片等)? 用ab
    • 要既读又写? 在后边添个+号增加权限, 用a+ 或者 ab+

r系列:

  • r :以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
  • r+:打开一个文件用于读写。文件指针将会放在文件的开头。
  • rb:以二进制格式打开一个文件用于只读。一般用于非文本文件如图片等。
  • rb+ :以二进制格式打开一个文件用于读写。一般用于非文本文件如图片等。

w系列:

  • w :打开一个文件只用于写入如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
  • w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  • wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
  • wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a系列:

  • a :打开一个文件用于追加(只写)。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后如果该文件不存在,创建新文件进行写入
  • a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
  • ab:以二进制格式打开一个文件用于追加(只写)。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
  • ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

你可能感兴趣的:(python-面试必会知识点,Python面试知识点整理)