Python 小白的晋级之路 - 第十五部分:读写文件

引言

在计算机编程中,文件操作是一项基本而重要的技能。通过文件操作,我们可以读取、创建和写入文件,从而实现对数据的有效管理和处理。无论是文本文件、图像文件还是音频文件,文件操作都是处理文件数据的关键步骤。

本文将介绍Python中文件操作的基础知识和常用技巧。首先,我们将学习如何打开文件,并了解不同的文件读取和写入模式。然后,我们将探讨如何使用Python的文件对象进行读取和写入操作,包括read()、write()和readlines()等方法。此外,我们还将学习如何关闭文件,以释放系统资源。

1  文件操作简介

1.1  什么是文件操作

  • 文件操作是指在计算机中对文件进行读取、创建、写入等操作的过程。

  • 文件是存储在计算机上的一组数据,可以是文本文件、图像文件、音频文件等。

1.2  文件读取模式

读取模式用于打开文件并从文件中读取内容。常见的读取模式有:

  1. 'r':读取模式,用于读取文件内容(默认模式)。

  2. 'rb':二进制读取模式,用于读取二进制文件。

  3. 'rt':文本读取模式,用于读取文本文件。

1.3  文件写入模式

写入模式用于创建文件并向文件中写入内容。常见的写入模式有:

  1. 'w':写入模式,用于创建并写入文件内容。如果文件已存在,将会被清空。

  2. 'wb':二进制写入模式,用于创建并写入二进制文件。

  3. 'wt':文本写入模式,用于创建并写入文本文件。

2  读取文件

2.1  使用open()函数打开文件

open()函数接收文件名和模式作为参数,返回一个文件对象,可用于后续的文件操作。

示例代码:

  • file = open('example.txt', 'r')

2.2  不同读取模式的示例

使用不同的读取模式打开文件,可以决定文件的读取方式。

  • file = open('example.txt', 'r')
  • content = file.read()
  • print(content)
  • file.close()

2.3  使用read()方法读取文件内容

read()方法用于从文件中读取内容,并将内容作为一个字符串返回。

示例代码:

  • file = open('example.txt', 'r')
  • content = file.read()
  • print(content)
  • file.close()

2.4  使用readlines()方法逐行读取文件

readlines()方法用于逐行读取文件内容,并将每一行作为一个字符串存储在列表中返回。

示例代码:

  • file = open('example.txt', 'r')
  • lines = file.readlines()
  • for line in lines:
  •       print(line.strip()) # 去除每行末尾的换行
  • 符file.close()

2.5  关闭文件

读取完文件之后,要使用close()方法关闭文件对象,释放资源。

示例代码:

  • file = open('example.txt', 'r')
  • content = file.read()
  • print(content)
  • file.close()

3  创建与写入文件

3.1  使用open()函数创建文件

open()函数可以创建一个新的文件,并返回一个文件对象。

示例代码:

  • file = open('new_file.txt', 'w')
  • file.close()

3.2  不同写入模式的示例

使用不同的写入模式打开文件,可以决定文件的写入方式。

示例代码:

  • file = open('new_file.txt', 'w')
  • file.write("Hello, world!")
  • file.close()

3.3  使用write()方法写入文件内容

write()方法用于向文件中写入内容,可以是字符串或字节。

示例代码:

  • file = open('new_file.txt', 'w')
  • file.write("Hello, world!")
  • file.close()

3.4  使用writelines()方法批量写入文件

writelines()方法用于向文件中批量写入内容,接收一个包含多行文本的列表作为参数。

示例代码:

  • lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
  • file = open('new_file.txt', 'w')
  • file.writelines(lines)
  • file.close()
  • file.close()

3.5  关闭文件

写入完文件之后,要使用close()方法关闭文件对象,释放资源。

示例代码:

  • file = open('new_file.txt', 'w')
  • file.write("Hello, world!")
  • file.close()

4  程序案例:成绩管理器

4.1  需求分析

我们需要一个程序来管理学生成绩,包括从文件读取成绩、添加新成绩和显示所有成绩的功能。

4.2  实现步骤

4.2.1 从文件读取成绩

使用open()函数打开成绩文件,使用readlines()方法逐行读取成绩,并存储在一个列表中。关闭文件。返回成绩列表。

示例代码:

  • def read_grades(filename):
  •       file = open(filename, 'r')
  •       grades = file.readlines()
  •       file.close()
  •       return grades

4.2.2 添加新成绩

使用open()函数以写入模式打开成绩文件,使用write()方法将新成绩写入文件。关闭文件。

示例代码:

  • def add_grade(filename, new_grade):
  •       file = open(filename, 'a')
  •       file.write(new_grade + '\n')
  •       file.close()

4.2.3 显示所有成绩

调用read_grades()函数读取成绩,然后使用循环遍历成绩列表并打印每个成绩。

示例代码:

  • def display_grades(filename):
  •       grades = read_grades(filename)
  •       for grade in grades:
  •             print(grade.strip())

4.3  运行示例并展示结果

  • filename = 'grades.txt'
  •  
  • # 读取成绩
  • print("初始成绩:")
  • display_grades(filename)
  •  
  • # 添加新成绩
  • new_grade = input("请输入新的成绩:")
  • add_grade(filename, new_grade)
  •  
  • # 显示所有成绩
  • print("更新后的成绩:")
  • display_grades(filename)
执行结果:
  • 初始成绩:
  • 90
  • 85
  • 88
  • 92
  • 请输入新的成绩:95
  • 更新后的成绩:
  • 90
  • 85
  • 88
  • 92
  • 95

课后练习题

 5.1  题目 1:统计文件中某单词的数量

编写一个函数,接收文件名和单词作为参数,统计文件中该单词出现的次数并返回。

示例代码:

  • def count_word(filename, word):
  •       file = open(filename, 'r')
  •       content = file.read()
  •       file.close()
  •       count = content.count(word)
  •       return count

5.2  题目 2:将多个文件合并成一个文件

编写一个函数,接收多个文件名和目标文件名作为参数,将多个文件的内容合并到目标文件中。

示例代码:

  • def merge_files(target_filename, *filenames):
  •       target_file = open(target_filename, 'w')
  •       for filename in filenames:
  •             file = open(filename, 'r')
  •             content = file.read()
  •             target_file.write(content)
  •             file.close()
  •       target_file.close()

5.3  题目 3:从文件中删除指定行

编写一个函数,接收文件名和行号作为参数,从文件中删除指定行,并保存修改后的文件。

示例代码:

  • def delete_line(filename, line_number):
  •        file = open(filename, 'r')
  •        lines = file.readlines()
  •        file.close()
  •        lines.pop(line_number - 1)
  •        file = open(filename, 'w')
  •        file.writelines(lines)
  •        file.close()

总结

本文介绍了 Python 中读取和写入文件的基本操作。首先,我们学习了使用open()函数来打开文件,并指定文件的打开模式(读取模式、写入模式等)。接下来,我们了解了文件对象的常用方法,如read()、write()、readlines()等,这些方法可以帮助我们读取和写入文件内容。此外,我们还学习了如何关闭文件对象,以释放资源。

在文章的后半部分,我们实现了一个简单的成绩管理器程序案例。这个程序包括从文件中读取成绩、添加新成绩和显示所有成绩等功能。通过这个案例,我们练习了读取文件、写入文件和处理文件内容的基本操作。

最后,我们提供了一些课后练习题供读者实践,涉及到统计文件中某单词的数量、将多个文件合并成一个文件以及从文件中删除指定行等操作。

通过本文的学习,读者可以掌握 Python 中读写文件的基本技巧,并应用到实际的编程项目中。

希望本文对读者有帮助,谢谢阅读!

往期回顾

Python 小白的晋级之路 - 第一部分:Python 的重要性和简洁的语法

Python 小白的晋级之路 - 第二部分:探索 Python 变量

Python实战之冒泡排序

Python 小白的晋级之路 - 第三部分:玩转 Python 字符串

Python 小白的晋级之路 - 第四部分:掌握 Python 列表

Python 小白的晋级之路 - 第五部分:驾驭 Python 元组

Python 小白的晋级之路 - 第六部分:Python 的 if 语句

Python 实战:猜数字与智能计算

Python 小白的晋级之路 - 第七部分:掌握字典的魔法

Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓

Python 小白的晋级之路 - 第九部分:征服 for 循环的领域

Python 实战:年会抽奖程序,别作弊哈

Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界

Python 实战案例:没人能活着离开的游戏

Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力

Python 实战:天气查询

Python 小白的晋级之路 - 第十二部分:了解常用第三方函数

Python爬取西门子论坛标题,看看大家最近都在讨论什么问题

Python 实战:字符统计程序

Python 小白的晋级之路 - 第十四部分:输入、输出和格式

Python 实战案例:待办事项列表管理程序

图片

2024年04月

 

Tags: