【成人版python基础入门】第三章 文件操作——程序员的日记本
文件操作——程序员的日记本
在与 Python 的数据结构冒险中,我们已经学会了如何使用列表和字典来管理和存储数据。现在,让我们进入一个全新的领域——文件操作。文件操作是编程中非常常见的任务,它允许你将数据保存到文件中,或者从文件中读取数据。学会文件操作,就像是拥有了一个日记本,可以随时记录和读取各种信息。
打开与关闭文件
打开文件
在 Python 中,使用 open()
方法打开文件。open()
方法需要两个参数:文件名和文件模式。模式可以是以下几种:
'r'
:读取模式,默认模式。如果文件不存在,会抛出异常。'w'
:写入模式。如果文件已存在,会覆盖原有内容;如果文件不存在,会创建新文件。'a'
:追加模式。如果文件已存在,会在文件末尾追加内容;如果文件不存在,会创建新文件。'b'
:二进制模式,用于处理二进制文件。'+'
:读写模式,用于同时读取和写入文件。
# 打开一个文件,模式为读取
file = open("diary.txt", "r")
这就像你打开了一个日记本,准备阅读里面的内容。
关闭文件
在完成文件操作后,使用 close()
方法关闭文件。关闭文件是一个好习惯,可以释放系统资源,避免不必要的错误。
# 关闭文件
file.close()
这就像你在阅读完日记后,合上了日记本,让它保持整洁和安全。
使用 with
语句
为了更安全地管理文件,Python 提供了 with
语句。使用 with
语句打开文件时,不管发生什么情况,文件都会在结束时自动关闭。
# 使用 with 语句打开文件
with open("diary.txt", "r") as file:
content = file.read()
print(content)
这就像你在阅读日记时,确保日记本在你合上它之前,内容已经被完全读取和记录。
读取文件内容
read()
方法
read()
方法用于读取文件中的全部内容,并返回一个字符串。
# 读取文件的全部内容
with open("diary.txt", "r") as file:
content = file.read()
print(content)
这就像你在日记本中一次性读取了所有的内容。
readline()
方法
readline()
方法用于读取文件中的下一行内容,并返回一个字符串。如果已经读到文件末尾,返回空字符串。
# 逐行读取文件内容
with open("diary.txt", "r") as file:
line = file.readline()
while line:
print(line.strip()) # 使用 strip() 去除行末的换行符
line = file.readline()
这就像你在日记本中逐行阅读,每读完一行再读下一行。
readlines()
方法
readlines()
方法用于读取文件中的所有行内容,并返回一个包含所有行的列表。
# 读取文件的所有行内容
with open("diary.txt", "r") as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # 使用 strip() 去除行末的换行符
这就像你在日记本中一次性读取了所有的页面,然后逐页打印出来。
写入文件
write()
方法
write()
方法用于向文件写入字符串内容。如果文件不存在,会创建新文件;如果文件已存在,会覆盖原有内容。
# 向文件写入内容
with open("diary.txt", "w") as file:
file.write("今天天气真好,心情也不错。\n")
file.write("明天去游泳。\n")
这就像你在日记本中写下了当天的心情和计划。
writelines()
方法
writelines()
方法用于向文件写入多个字符串,这些字符串需要组成一个列表。
# 向文件写入多行内容
lines = ["今天天气真好,心情也不错。\n", "明天去游泳。\n"]
with open("diary.txt", "w") as file:
file.writelines(lines)
这就像你在日记本中一次性写下了多天的内容。
异常处理
在文件操作中,经常会遇到文件不存在、权限不够等问题。使用异常处理可以让你的程序更加健壮,能够在出现错误时优雅地处理。
使用 try-except
语句
try-except
语句用于捕获和处理异常。如果 try
块中的代码抛出异常,except
块中的代码会被执行。
# 捕获文件不存在的异常
try:
with open("nonexistent_file.txt", "r") as file:
content = file.read()
print(content)
except FileNotFoundError:
print("文件不存在,请检查文件名和路径。")
这就像你在尝试打开一个不存在的日记本时,日记本告诉你文件名或路径可能有误。
处理多种异常
你可以捕获多种类型的异常,通过多个 except
块来处理不同类型的异常。
# 处理多种异常
try:
with open("diary.txt", "r") as file:
content = file.read()
print(content)
except FileNotFoundError:
print("文件不存在,请检查文件名和路径。")
except PermissionError:
print("没有权限读取文件,请检查文件权限。")
except Exception as e:
print("发生了一个未知错误:", e)
这就像你在尝试打开一个日记本时,可能会遇到文件不存在、权限不够等问题,日记本会告诉你具体的原因。
使用 finally
块
finally
块中的代码无论是否发生异常,都会被执行。这通常用于做一些清理工作,如关闭文件。
try:
file = open("diary.txt", "r")
content = file.read()
print(content)
except FileNotFoundError:
print("文件不存在,请检查文件名和路径。")
finally:
file.close()
print("文件已关闭。")
这就像你在尝试打开某个日记本时,不管成功与否,最后都会合上它,确保日记本的安全。
代码样例:创建一个日记小助手
假设你想创建一个日记小助手,记录你每天的心情,并通过文件操作实现数据的存储和读取。让我们通过一个实际的代码样例来实现这个功能。
代码实现
import os
# 定义日记文件的路径
diary_file = "my_diary.txt"
# 检查文件是否存在
if not os.path.exists(diary_file):
with open(diary_file, "w") as file:
file.write("这是我的日记本。\n")
# 读取日记内容
try:
with open(diary_file, "r") as file:
print("当前日记内容:")
content = file.read()
print(content)
except Exception as e:
print("读取日记时发生错误:", e)
# 记录新的日记内容
new_entry = input("请输入你今天的心情: ")
try:
with open(diary_file, "a") as file:
file.write(f"\n今天的心情: {new_entry}\n")
print("新的日记内容已记录。")
except Exception as e:
print("记录日记时发生错误:", e)
# 读取更新后的日记内容
try:
with open(diary_file, "r") as file:
print("更新后的日记内容:")
content = file.read()
print(content)
except Exception as e:
print("读取更新后的日记时发生错误:", e)
代码详解
-
检查文件是否存在:
if not os.path.exists(diary_file): with open(diary_file, "w") as file: file.write("这是我的日记本。\n")
使用
os.path.exists()
函数检查日记文件是否存在。如果不存在,创建一个新的日记文件,并写入初始内容。 -
读取日记内容:
try: with open(diary_file, "r") as file: print("当前日记内容:") content = file.read() print(content) except Exception as e: print("读取日记时发生错误:", e)
使用
try-except
语句读取日记文件的内容,并输出。如果读取过程中发生异常,会捕获并显示错误信息。 -
记录新的日记内容:
new_entry = input("请输入你今天的心情: ") try: with open(diary_file, "a") as file: file.write(f"\n今天的心情: {new_entry}\n") print("新的日记内容已记录。") except Exception as e: print("记录日记时发生错误:", e)
使用
input()
函数获取用户输入的新日记内容,然后通过with open(diary_file, "a")
以追加模式打开文件,将新的内容写入文件。如果写入过程中发生异常,会捕获并显示错误信息。 -
读取更新后的日记内容:
try: with open(diary_file, "r") as file: print("更新后的日记内容:") content = file.read() print(content) except Exception as e: print("读取更新后的日记时发生错误:", e)
再次读取日记文件的内容,输出更新后的日记。如果读取过程中发生异常,会捕获并显示错误信息。
运行结果
假设你运行了上面的代码,程序会先检查日记文件是否存在,如果不存在则创建一个新的日记文件。然后,程序会读取当前的日记内容并显示。接着,你输入当天的心情,程序将其记录到日记文件中。最后,程序会读取更新后的日记内容并显示。
例如:
当前日记内容:
这是我的日记本。
请输入你今天的心情: 今天天气真好,感觉非常开心。
新的日记内容已记录。
更新后的日记内容:
这是我的日记本。
今天的心情: 今天天气真好,感觉非常开心。
摘要
通过这一篇的学习,你已经学会了如何使用 Python 进行文件操作,包括打开和关闭文件、读取文件内容、写入文件内容以及处理文件操作中的异常。文件操作就像是拥有一个日记本,可以随时记录和读取数据,这对于数据管理、日志记录、配置文件处理等任务非常有用。
- 打开与关闭文件:使用
open()
方法打开文件,使用close()
方法关闭文件。使用with
语句可以更安全地管理文件。 - 读取文件内容:使用
read()
方法读取全部内容,使用readline()
方法逐行读取内容,使用readlines()
方法读取所有行内容。 - 写入文件:使用
write()
方法写入字符串内容,使用writelines()
方法写入多行内容。 - 异常处理:使用
try-except
语句捕获和处理文件操作中的异常,确保程序的健壮性。
希望这篇教程能为你与 Python 的旅途带来更多的乐趣和信心。文件操作是编程中不可或缺的一部分,掌握文件操作的基本技巧,将使你在处理实际问题时更加得心应手。让我们继续前行,探索更多 Python 的功能和编程技巧。✍️🔄🎉
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)