Python 小白的晋级之路 - 第十五部分:读写文件
引言
在计算机编程中,文件操作是一项基本而重要的技能。通过文件操作,我们可以读取、创建和写入文件,从而实现对数据的有效管理和处理。无论是文本文件、图像文件还是音频文件,文件操作都是处理文件数据的关键步骤。
本文将介绍Python中文件操作的基础知识和常用技巧。首先,我们将学习如何打开文件,并了解不同的文件读取和写入模式。然后,我们将探讨如何使用Python的文件对象进行读取和写入操作,包括read()、write()和readlines()等方法。此外,我们还将学习如何关闭文件,以释放系统资源。
1 文件操作简介
1.1 什么是文件操作
文件操作是指在计算机中对文件进行读取、创建、写入等操作的过程。
文件是存储在计算机上的一组数据,可以是文本文件、图像文件、音频文件等。
1.2 文件读取模式
读取模式用于打开文件并从文件中读取内容。常见的读取模式有:
'r':读取模式,用于读取文件内容(默认模式)。
'rb':二进制读取模式,用于读取二进制文件。
'rt':文本读取模式,用于读取文本文件。
1.3 文件写入模式
写入模式用于创建文件并向文件中写入内容。常见的写入模式有:
'w':写入模式,用于创建并写入文件内容。如果文件已存在,将会被清空。
'wb':二进制写入模式,用于创建并写入二进制文件。
'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 课后练习题
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 的 if 语句
Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓
Python 小白的晋级之路 - 第九部分:征服 for 循环的领域
Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界
Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力
Python 小白的晋级之路 - 第十二部分:了解常用第三方函数
Python爬取西门子论坛标题,看看大家最近都在讨论什么问题
Python 小白的晋级之路 - 第十四部分:输入、输出和格式
2024年04月