earph0n3's doc Help

打开文件

python内置的open()方法可以打开文件,并返回一个文件对象,比如:

open('test.png', 'rb')

这样就打开了一个文件,并且返回值是一个文件对象, 单独这样是不够的, 如果需要对文件进行操作, 就需要用到返回的那个文件对象, 语句就需要改成:

f = open('test.png', 'rb') 后续使用f对文件进行操作 # 或者 open('test.png', 'rb') as f: # 对文件对象的操作 ...

需要注意的是, 每次open之后都会占用一些资源, 所以在对文件对象操作完成后一般需要关闭文件, 也就是:

# 关闭文件对象 f.close()

打开模式

open()方法有很多参数, 完整的形式为:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数有很多, 但是常用的一般是三个:

open(file, mode='r', encoding='utf-8')

其中file参数是文件路径, mode参数是打开的模式, encoding参数指定文件的编码

mode参数有很多选择:

模式

描述

t

文本模式 (默认)。

x

写模式,新建一个文件,如果该文件已存在则会报错。

b

二进制模式。

+

打开一个文件进行更新(可读可写)。

U

通用换行模式(Python 3 不支持)。

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

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

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

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

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

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

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

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

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

一般常用的模式是 rrb, 如果不指定, 则默认是t模式

14 十月 2024