文件操作
- 1.文件的基本操作
- 1.1 操作文件的套路
- 1.2 操作文件的函数/方法
- 1.3 read 方法—— 读取文件
- 1.4文件指针(知道)--位置指针
- 1.5 按行读取文件内容
- 1.6 文件读写案例—— 复制文件
1.文件的基本操作
1.1 操作文件的套路
在 计算机 中要操作文件的套路非常固定,一共包含三个步骤:
1 打开文件
2 读、写文件
– 读 将文件内容读入内存
– 写 将内存内容写入文件
3 关闭文件
1.2 操作文件的函数/方法
• 在Python 中要操作文件需要记住 1 个函数和 3 个方法
序号 函数/方法 说明
01: open 打开文件,并且返回文件操作对象
02: read 将文件内容读取到内存
03: write 将指定内容写入文件
04: close 关闭文件
1.3 read 方法—— 读取文件
• open 函数的第一个参数是要打开的文件名(文件名区分大小写)
– 如果文件 存在,返回 文件操作对象
– 如果文件 不存在,会 抛出异常
• read 方法可以一次性 读入 并 返回 文件的 所有内容
• close 方法负责 关闭文件
– 如果 忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问
• 注意:read 方法执行后,会把 文件指针 移动到 文件的末尾
# 1. 打开 - 文件名需要注意大小写
file = open("README",encoding=’utf-8’)
# 2. 读取
text = file.read() print(text)
# 3. 关闭
file.close()
提示
• 在开发中,通常会先编写 打开 和 关闭 的代码,再编写中间针对文件的 读/写操作!file.read(size),size 参数代表要读取的文件内容大小
1.4文件指针(知道)–位置指针
• 文件指针 标记 从哪个位置开始读取数据
• 第一次打开 文件时,通常 文件指针会指向文件的开始位置
• 当执行了read 方法后,文件指针 会移动到 读取内容的末尾
– 默认情况下会移动到 文件末尾
思考
• 如果执行了一次read 方法,读取了所有内容,那么再次调用read 方法,还能够获得到内容吗?
答案
• 不能
• 第一次读取之后,文件指针移动到了文件末尾,再次调用不会读取到任何的内容
文本模式下:\n 写入磁盘时,会保存为\r\n
当遇到\r\n 时,读到的是\n
提示
• 频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以 只读、只写 的方式来操作文件
写入文件示例
# 打开文件
f = open("README", "w")
f.write("hello python!\n")
f.write("今天天气真好")
# 关闭文件
f.close()
1.5 按行读取文件内容
• read 方法默认会把文件的 所有内容一次性读取到内存
• 如果文件太大,对内存的占用会非常严重
readline 方法
• readline 方法可以一次读取一行内容
• 方法执行后,会把 文件指针 移动到下一行,准备再次读取读取大文件的正确姿势
# 打开文件
file = open("README")
while True:
# 读取一行内容
text = file.readline()
# 判断是否读到内容
if not text: break
# 每读取一行的末尾已经有了一个 `\n` print(text, end="")
# 关闭文件
file.close()
注:readline(size) size 参数代表要读取的文件内容大小
1.6 文件读写案例—— 复制文件
目标
用代码的方式,来实现文件复制过程
小文件复制
• 打开一个已有文件,读取完整内容,并写入到另外一个文件
# 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()
- 大文件复制
• 打开一个已有文件,逐行读取内容,并顺序写入到另外一个文件
# 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()
相关阅读:
链接: Python文件操作