11.文件操作
1.文件操作的函数\方法
序号 | 函数\方法 | 说明 |
---|---|---|
1 | open | 打开文件,并且返回文件操作对象 |
2 | read | 将文件内容读取到内存 |
3 | write | 将指定内容写入文件 |
4 | close | 关闭文件 |
- open 函数负责打开文件,并且返回文件对象
- read/write/close 三个方法都需要通过文件对象来调用
- 如果执行了一次read方法,读取了所有内容,那么再次调用read方法,就不能获取内容了
例:读取文件内容
文件内容:
代码实现:
# 1.打开文件
file = open("README")
# 2.读取文件内容
text = file.read()
print(text)
# 3.关闭文件
file.close()
运行结果:
2.打开文件的方式
open函数默认以只读方式打开文件,并且返回文件对象
语法如下:
f = open("文件名","访问方式")
访问方式 | 说明 |
---|---|
r | 默认模式,以只读方式打开文件。文件指针放在文件开头。文件不存在则抛出异常。 |
w | 以只写方式打开文件。文件存在就会被覆盖,文件不存在则创建新文件。 |
a | 以追加方式打开文件。文件以存在,文件指针放在文件的结尾,文件不存在,创建新文件写入。 |
r+ | 以读写方式打开文件。文件指针放在文件开头。文件不存在则抛出异常。 |
w+ | 以读写方式打开文件。文件不存在则创建新文件。 |
a+ | 以读写方式打开文件。文件存在,文件指针会放在文件的结尾,文件不存在,创建文件进行写入。 |
- 频繁地移动文件指针,会影响文件的读写效果,所以更多的时候会以只读、只写的方式来操作文件。
3.按行读取文件内容
read方法默认会把文件的所有内容一次性读取到内存
如果文件太大,对内存的占用会非常严重
readline方法:
- readline方法可以一次读取一行内容
- 方法执行后,会把文件指针移动到下一行,准备再次读取
读取大文件的正确姿势:
文件内容:
代码实现:
file = open("README")
while True:
text = file.readline()
# 判断是否读取到内容
if not text:
break
print(text)
file.close()
运行结果:
4.小文件复制
- 打开一个已有文件,读取完整内容,并写入到另一个文件中
# 小文件复制
# 1.打开
file_read = open("README")
file_write = open("README[拷贝]", "w")
# 2.读、写
text = file_read.read()
file_write.write(text)
# 3.关闭
file_read.close()
file_write.close()
5.大文件复制
# 小文件复制
# 1.打开
file_read = open("README")
file_write = open("README[拷贝]", "w")
# 2.读、写
while True:
# 读取一行内容
text = file_read.readline()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3.关闭
file_read.close()
file_write.close()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3.关闭
file_read.close()
file_write.close()