Python(十二)——文件基本操作

147 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

  1. 打开文件:使用 open() 函数,该函数会返回一个文件对象;
  2. 对已打开文件做读/写操作:读取文件内容可使用 read()、readline() 以及 readlines() 函数;向文件中写入内容,可以使用 write() 函数。
  3. 关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用 close() 函数。

1、打开文件 open()

open()函数:创建或打开指定的文件,并返回文件对象

使用格式:

file = open(file_name, mode)

参数说明:

  • file_name:文件名
  • mode:文件的打开模式

文件打开模式(常见):

模式描述
w打开一个文件只用于写入。若该文件存在,打开时会清空文件中原有的内容。如果该文件不存在,会创建新文件。
r只读模式打开文件,读文件内容的指针会放在文件的开头(默认模式),文件要存在,否则会报错。
a以追加模式打开一个文件。如果该文件已存在,文件指针将会放在文件的结尾,新的内容将会被写入到已有内容之后。如果该文件不存在,则会创建新文件。

使用实例:

#以r只读模式打开文件
file = open("test.txt","r")

#以w模式打开文件
file = open("test.txt","w")

文件对象属性

打开文件之后,可以获取当前文件的部分信息,常见的属性有:

  • file.name:获取文件的名称;
  • file.mode:获取打开文件时,采用的文件打开模式;
  • file.encoding:获取打开文件时使用的编码格式;
  • file.closed:判断文件是否己经关闭。

使用实例:

file = open("test.txt",encoding="UTF-8")
print(file.name)
print(file.mode)
print(file.encoding)
print(file.closed)

执行结果:

test.txt
r
UTF-8
False

2、读写操作

2.1、读操作

读取文件内容可使用 read()、readline() 以及 readlines() 函数;

read()函数

read()函数:逐个读取文件中的字符

语法格式:

file.read([size])

file:文件对象

size :可选参数,用于指定一次最多可读取的字符(字节)个数,则默认一次性读取所有内容。

使用实例:

file = open("test.txt",encoding="UTF-8")
print(file.read())

执行结果:

"人生苦短,我用Python"

readline() 和 readlines() 函数

readline() 函数用于读取文件中的一行

readlines() 函数用于读取文件中的所有行,会读取最后的换行符“\n”。返回一个字符串列表,其中每个元素为文件中的一行内容。

语法格式:

file.readline([size])
file.readlines()

使用实例:

test.txt文件内容:

"人生苦短,我用Python"
"Hello Python"

使用readline()函数:

file = open("test.txt",encoding="UTF-8")
print(file.readline())

执行结果:

"人生苦短,我用Python"

使用readlines()函数:

file = open("test.txt",encoding="UTF-8")
print(file.readlines())

执行结果:

['"人生苦短,我用Python"\n', '"Hello Python"']

2.2、写操作

write()函数

write()函数:向文件中写入指定内容

使用 write() 向文件中写入内容,要使用 r+、w、w+、a 或 a+ 的模式打开文件,否则执行 write() 函数会报错 io.UnsupportedOperation 错误。

语法格式:

file.write(string)

使用实例:

创建test1.txt文件:

"人生苦短,我用Python"
"Hello Python"

使用write()函数:

file = open("test1.txt","w")
file.write("hello world")
file = open("test1.txt")
print(file.read())

执行结果:文件原有内容被覆盖

hello world

再以a追加模式打开文件,并写入内容:

file = open("test1.txt","a")
file.write("\nhello Python")
file = open("test1.txt")
print(file.read())

执行结果:新写入的内容添加到原内容后边

hello world
hello Python

writelines()函数

writelines()函数:将字符串列表写入文件中

创建test.txt文件:

hello world
hello world

创建test1.txt文件:

hello Python
hello Python

使用writelines()函数:

f = open('test.txt', 'r')
n = open('test1.txt','w')
n.writelines(f.readlines())

3、关闭文件 close()

文件在打开并操作完成之后,应该及时关闭,Python 垃圾回收机制无法自动回收打开文件所占用的资源。

close() 函数就是用来关闭已打开的文件;关闭后的文件将不能再进行读写操作;

f = open('test.txt', 'r')
n = open('test1.txt','w')
n.writelines(f.readlines())
#关闭文件
n.close()
f.close()