携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情
- 打开文件:使用 open() 函数,该函数会返回一个文件对象;
- 对已打开文件做读/写操作:读取文件内容可使用 read()、readline() 以及 readlines() 函数;向文件中写入内容,可以使用 write() 函数。
- 关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用 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()