【Python】文件操作-按行读取

261 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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()

程序运行结果如下图所示:

image.png

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中内容完全相同。因此实现了小文件复制。