Python中的文件读写——open()函数

利用open()函数,可以打开一个文件,例如txt文件,或者是图片等,不过打开的方式有些区别,为了便于理解,我们采用打开txt文件的方式去学习这个函数。

被打开的文件在Python中创建了一个file对象,可以用file对象的方法进行操作。

语法:

open(name[, mode[, buffering]])

参数:

  • name : 一个包含了你要访问的文件名称的字符串值。
  • mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。【在文章后,附上Mode表,可以根据需要选择对应的打开模式,例如打开图片往往是二进制的形式】
  • buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

用法:

我们可以先从文件的写入开始:

f = open('mytxt.txt','w',encoding='utf-8')
mytxt = '''这是一个用于测试的文件夹
hello
我是鱼毛
'''
f.write(mytxt)
f.close()

上述代码在当前目录以写入(w)的方式打开一个名为"mytxt.txt"的文件,如果不存在,则会创建这个文件,指定编码为utf-8,然后利用write方法写入mytxt的内容,最后利用f.close()关闭文件。代码执行后,当前目录下生成了一个txt文件如下:

同样,我们也可以在python中将这个文件读取进来,代码如下:

f = open('mytxt.txt','r',encoding='utf-8')
mytxt = f.read()
print(mytxt)
f.close()

# 这是一个用于测试的文件夹
# hello
# 我是鱼毛

在上面的代码中,我们就完成了文件的读取操作,以只读(r)的方式打开文件夹,指定编码为utf-8,然后利用read()方法将文件内容全部读取到mytxt中,进行打印。

读取文件除了read()读取所有内容保存为字符串之外,还有readline()读取一行,readlines()读取所有内容,保存为一个列表,每行为列表中的一个元素。

通过上面两个例子,我们打开文件后,都需要用close去关闭,因此,open函数的操作流程大致如下:

f = open()
文件操作
f.close()

最后,附上不同的mode以及对应的描述。

不同的打开模式

模式

描述

t

文本模式 (默认)。

x

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

b

二进制模式。

+

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

U

通用换行模式(不推荐)。

r

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

rb

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

r+

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

rb+

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

w

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

wb

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

w+

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

wb+

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

a

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

ab

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

a+

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

ab+

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

小结

open()函数构建起了python程序与程序之外文件沟通的一个桥梁,需要掌握他的具体用法,完成文件的读写操作,尤其记得在对文件操作完成之后需要将文件close。

举报
评论 0