携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
1. 按行读取文件内容
- read方法默认会把文件的所有内容一次性读取到内存
- 如果文件太大,对内存的占用会非常严重
2. readline方法
- readline方法可以一次读取一行内容
- 方法执行后,会把文件指针移动到下一行,准备再次读取
3. 代码演示
接下来将使用代码演示用按行读取方法来遍历文件内容。
大体思路:使用while循环遍历文件中每行内容,读取一行,打印一行。若某行读不到文件内容时,则使用break跳出循环。 具体代码演示如下所示:
# 打开文件
file = open("README.md")
while True:
# 读取一行内容
text = file.readline()
# 判断是否读到内容
if not text:
break
# 每读取一行的末尾已经有了一个‘\n’
print(text, end="")
# 关闭文件
file.close()
程序运行结果如下图所示:
4. 案例演示
案例需求:用代码的方式,来实现文件复制过程。 打开一个已有文件,读取完整内容,并写入到另外一个文件。
- 需要打开两个文件,源文件以只读方式打开,目标文件以只写方式打开
- 从源文件中读取所有的内容,把读取到的内容写入目标文件
- 最终要记得把两个文件都调用关闭的方法
具体案例演示代码如下所示:
# 1.打开
file_read = open("README.md")
file_write = open("README[复件].md", "w")
# 2. 读,写
text = file_read.read()
file_write.write(text)
# 3. 关闭
file_read.close()
file_write.close()
运行结果如下所示:
可以发现工作文件夹内新生成一个以README[复件]命名的新文件,打开该文件可以发现,该目标文件与源文件README中内容完全相同。因此实现了小文件复制。