【成人版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)

代码详解

  1. 检查文件是否存在

    if not os.path.exists(diary_file):
        with open(diary_file, "w") as file:
            file.write("这是我的日记本。\n")
    

    使用 os.path.exists() 函数检查日记文件是否存在。如果不存在,创建一个新的日记文件,并写入初始内容。

  2. 读取日记内容

    try:
        with open(diary_file, "r") as file:
            print("当前日记内容:")
            content = file.read()
            print(content)
    except Exception as e:
        print("读取日记时发生错误:", e)
    

    使用 try-except 语句读取日记文件的内容,并输出。如果读取过程中发生异常,会捕获并显示错误信息。

  3. 记录新的日记内容

    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") 以追加模式打开文件,将新的内容写入文件。如果写入过程中发生异常,会捕获并显示错误信息。

  4. 读取更新后的日记内容

    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 的功能和编程技巧。✍️🔄🎉

posted @   爱上编程技术  阅读(1)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示