《Python 简易速速上手小册》第6章:Python 文件和数据持久化(基于最新版 Python3.12 编写)

注意:本《Python 简易速速上手小册》

核心目的在于让零基础新手「快速构建 Python 知识体系」

文章目录

    • [<mark >注意:本《Python 简易速速上手小册》](#注意:本《Python 简易速速上手小册》)
    • [<mark >核心目的在于让零基础新手「快速构建 Python 知识体系」](#核心目的在于让零基础新手「快速构建 Python 知识体系」)
  • [6.1 文件读写操作](#6.1 文件读写操作)
    • [6.1.1 打开文件](#6.1.1 打开文件)
    • [6.1.2 读取文件内容](#6.1.2 读取文件内容)
    • [6.1.3 写入文件内容](#6.1.3 写入文件内容)
    • [6.1.4 关闭文件](#6.1.4 关闭文件)
    • [6.1.5 异常处理](#6.1.5 异常处理)
  • [6.2 处理 JSON 和 CSV 文件](#6.2 处理 JSON 和 CSV 文件)
    • [6.2.1 读取 JSON 文件](#6.2.1 读取 JSON 文件)
    • [6.2.2 写入 JSON 文件](#6.2.2 写入 JSON 文件)
    • [6.2.3 处理 CSV 文件](#6.2.3 处理 CSV 文件)
    • [6.2.4 写入 CSV 文件](#6.2.4 写入 CSV 文件)
    • [6.2.5 异常处理](#6.2.5 异常处理)
  • [6.3 数据库交互基础](#6.3 数据库交互基础)
    • [6.3.1 连接到 MySQL 数据库](#6.3.1 连接到 MySQL 数据库)
    • [6.3.2 执行 SQL 查询](#6.3.2 执行 SQL 查询)
      • [6.3.2.1 创建表格](#6.3.2.1 创建表格)
      • [6.3.2.2 插入数据](#6.3.2.2 插入数据)
      • [6.3.2.3 查询数据](#6.3.2.3 查询数据)
      • [6.3.2.4 更新数据](#6.3.2.4 更新数据)
      • [6.3.2.5 删除数据](#6.3.2.5 删除数据)
    • [6.3.3 提交更改和关闭连接](#6.3.3 提交更改和关闭连接)
    • [6.3.4 异常处理](#6.3.4 异常处理)

当然!让我们深入研究第 6 章的 6.1 节:"文件读写操作"。了解如何与文件进行交互、读取和写入数据是 Python 编程中的基本技能。

6.1 文件读写操作

在这一节,我们将学习如何打开、读取和写入文件。文件是计算机上存储和处理数据的重要方式之一,因此掌握文件读写操作对于处理各种任务至关重要。

6.1.1 打开文件

在 Python 中,使用内置的 open() 函数来打开文件。要打开文件,你需要指定文件的名称和打开模式。

python 复制代码
# 打开文件以进行读取
with open("example.txt", "r") as file:
    content = file.read()

# 打开文件以进行写入
with open("output.txt", "w") as file:
    file.write("Hello, World!")

在上面的示例中,我们使用 open() 函数打开了两个文件。第一个示例打开了一个名为 "example.txt" 的文件以供读取(模式为"r"),而第二个示例打开了一个名为 "output.txt" 的文件以供写入(模式为"w")。使用with语句可以确保文件在使用完后被正确关闭,这是一种良好的做法,因为它可以防止资源泄漏。

6.1.2 读取文件内容

一旦打开了文件,你可以使用不同的方法来读取文件的内容。最常见的方法之一是使用read()方法。

python 复制代码
with open("example.txt", "r") as file:
    content = file.read()

read()方法将文件的整个内容读取为一个字符串,并将其存储在变量content中。

6.1.3 写入文件内容

要将数据写入文件,你可以使用write()方法。请注意,使用写入模式("w")打开文件时,如果文件已存在,它将被清空并替换为新内容。

python 复制代码
with open("output.txt", "w") as file:
    file.write("Hello, World!")

在这个示例中,我们将字符串"Hello, World!"写入了名为"output.txt"的文件中。如果文件不存在,将会创建一个新文件。

6.1.4 关闭文件

在处理完文件后,一定要关闭文件,释放资源。使用with语句可以确保文件在退出with块时自动关闭,但你也可以使用close()方法手动关闭文件。

python 复制代码
file = open("example.txt", "r")
content = file.read()
file.close()

这是手动关闭文件的方法,但使用with语句更安全和方便。

6.1.5 异常处理

在文件读写操作中,可能会发生各种异常,如文件不存在、权限不足等。因此,在实际应用中,要使用异常处理机制来处理这些情况,以确保程序能够优雅地处理问题而不崩溃。

python 复制代码
try:
    with open("example.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("文件不存在!")
except PermissionError:
    print("没有文件访问权限!")

在这个示例中,我们使用tryexcept块来捕获可能发生的异常,并提供适当的错误消息。

文件读写操作是 Python 编程中的基础之一。了解如何打开、读取和写入文件,以及如何进行异常处理,对于处理各种任务都是至关重要的。无论你是处理文本文件、日志文件还是配置文件,这些技能都将成为你编程工具箱中的重要工具。继续前进,探索 Python 编程的精彩世界吧!


当然!让我们深入研究第 6 章的 6.2 节:"处理J SON 和 CSV 文件"。这一节将帮助你了解如何处理这两种常见的数据格式。

6.2 处理 JSON 和 CSV 文件

在现实世界中,经常需要处理 JSON 和 CSV 格式的数据。JSON 通常用于配置文件和 Web API 响应,而 CSV 则用于电子表格和数据导出。了解如何处理这两种格式将为你的数据处理任务提供强大的工具。

6.2.1 读取 JSON 文件

JSON(JavaScript Object Notation)是一种常见的数据交换格式,它以易读和易写的文本形式表示数据对象。Python 内置了处理 JSON 的模块。

python 复制代码
import json

# 从JSON文件中读取数据
with open("data.json", "r") as json_file:
    data = json.load(json_file)

# 访问JSON数据
print(data["name"])
print(data["age"])

在上面的示例中,我们使用json.load()方法从名为"data.json"的 JSON 文件中读取数据,并将其解析为 Python 字典。然后,我们可以像访问字典一样访问 JSON 数据的各个字段。

6.2.2 写入 JSON 文件

如果你想将 Python 数据结构保存为 JSON 文件,也可以使用 JSON 模块。

python 复制代码
import json

# 创建一个Python字典
data = {"name": "Alice", "age": 30}

# 将数据写入JSON文件
with open("output.json", "w") as json_file:
    json.dump(data, json_file)

在这个示例中,我们首先创建了一个包含数据的 Python 字典,然后使用 json.dump() 方法将数据写入名为 "output.json" 的 JSON 文件中。

6.2.3 处理 CSV 文件

CSV(Comma-Separated Values)是一种常见的表格数据格式,它使用逗号或其他分隔符来分隔数据字段。Python 内置了处理 CSV 的模块。

python 复制代码
import csv

# 从CSV文件中读取数据
with open("data.csv", "r", newline="") as csv_file:
    reader = csv.DictReader(csv_file)
    for row in reader:
        print(row["name"], row["age"])

在上面的示例中,我们使用csv.DictReader()来读取CSV文件,并将每一行数据解析为一个字典,其中列名作为字典的键。然后,我们可以轻松地访问和处理 CSV 数据。

6.2.4 写入 CSV 文件

如果你有一个包含字典的列表,可以使用CSV模块将数据写入CSV文件。

python 复制代码
import csv

data_to_write = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]

# 写入CSV文件
with open("output.csv", "w", newline="") as csv_file:
    fieldnames = ["name", "age"]
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    writer.writeheader()
    for row in data_to_write:
        writer.writerow(row)

在这个示例中,我们首先创建了一个包含字典的列表,然后使用csv.DictWriter()来将数据写入CSV文件。我们还使用writeheader()方法写入CSV文件的列名。

6.2.5 异常处理

在处理文件时,要注意处理可能出现的异常,例如文件不存在或格式错误。使用适当的异常处理来确保你的程序能够容忍各种情况。

处理 JSON 和 CSV 文件是 Python 编程中的常见任务,无论你是从外部数据源导入数据,还是将数据导出到其他系统,这些技能都非常有价值。继续前进,探索 Python 编程的奇妙世界,你的数据处理能力将更上一层楼!


当然,让我们深入研究第6章的6.3节:"数据库交互基础"。这一节将帮助你了解如何使用Python与MySQL数据库进行交互和编程。

6.3 数据库交互基础

数据库是用于存储和管理大量结构化数据的强大工具。Python提供了多种库和模块,可以让你与各种数据库系统进行交互,包括MySQL、SQLite、PostgreSQL等。在本节中,我们将重点介绍如何与MySQL数据库进行交互和编程。

6.3.1 连接到 MySQL 数据库

首先,我们需要使用合适的库来连接到 MySQL 数据库。在 Python 中,常用的库是mysql-connector-python,你可以使用pip来安装它:

bash 复制代码
pip install mysql-connector-python

然后,你可以使用以下代码来连接到MySQL数据库:

python 复制代码
import mysql.connector

# 创建数据库连接
conn = mysql.connector.connect(
    host="localhost",
    user="username",
    password="password",
    database="mydatabase"
)

# 创建游标对象
cursor = conn.cursor()

在上面的示例中,我们使用mysql.connector库创建了与MySQL数据库的连接。你需要提供数据库的主机名(host)、用户名(user)、密码(password)和数据库名称(database)。然后,我们创建了一个游标对象,用于执行SQL查询和操作数据库。

6.3.2 执行 SQL 查询

一旦连接到数据库,你可以使用游标对象来执行SQL查询和操作数据。以下是一些常见的示例:

6.3.2.1 创建表格

python 复制代码
# 创建表格
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")

6.3.2.2 插入数据

python 复制代码
# 插入数据
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
values = ("Alice", 30)
cursor.execute(sql, values)

# 提交更改
conn.commit()

6.3.2.3 查询数据

python 复制代码
# 查询数据
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()

for row in result:
    print(row)

6.3.2.4 更新数据

python 复制代码
# 更新数据
sql = "UPDATE users SET age = %s WHERE name = %s"
values = (25, "Alice")
cursor.execute(sql, values)

# 提交更改
conn.commit()

6.3.2.5 删除数据

python 复制代码
# 删除数据
sql = "DELETE FROM users WHERE name = %s"
values = ("Alice",)
cursor.execute(sql, values)

# 提交更改
conn.commit()

这些示例演示了如何执行常见的SQL操作,包括创建表格、插入数据、查询数据、更新数据和删除数据。

6.3.3 提交更改和关闭连接

在执行SQL操作后,一定要使用commit()方法提交更改,以确保更改生效。最后,不要忘记关闭数据库连接。

python 复制代码
# 提交更改
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

6.3.4 异常处理

与文件操作类似,在数据库交互过程中也可能发生各种异常,例如数据库连接失败、SQL 语法错误等。因此,要使用适当的异常处理机制来处理这些情况,以确保程序能够容忍各种问题。

python 复制代码
import mysql.connector

try:
    # 尝试连接到数据库
    conn = mysql.connector.connect(
        host="localhost",
        user="username",
        password="password",
        database="mydatabase"
    )

    # 创建游标对象
    cursor = conn.cursor()

    # 执行SQL查询
    cursor.execute("SELECT * FROM users")
    result = cursor.fetchall()

    for row in result:
        print(row)

except mysql.connector.Error as err:
    # 处理数据库连接或查询错误
    print(f"数据库错误: {err}")

finally:
    # 无论是否发生异常,都要关闭游标和连接
    if 'conn' in locals():
        conn.close()
    if 'cursor' in locals():
        cursor.close()

在上面的示例中,我们使用tryexcept块来尝试连接到数据库并执行查询。如果发生与数据库连接或查询相关的异常,它们将被捕获并处理,然后程序将继续执行。无论是否发生异常,finally块都会确保关闭数据库连接和游标,以释放资源。

这个案例演示了如何使用异常处理机制来容忍可能发生的问题,从而使程序更稳定。这对于生产环境中的数据库应用程序非常重要,因为它们需要具备高可用性和容错性。

数据库交互是 Python 编程中的重要部分,它使你能够处理和管理大量的结构化数据。无论你是构建 Web 应用程序、数据分析工具还是管理系统,与数据库交互的能力都是非常有价值的。继续前进,探索 Python 编程的奇妙世界,你将能够构建强大的数据库驱动应用程序!

相关推荐
夜夜敲码7 分钟前
C语言教程(十六): C 语言字符串详解
c语言·开发语言
宋康14 分钟前
C语言结构体和union内存对齐
c语言·开发语言
逢生博客19 分钟前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
꧁坚持很酷꧂19 分钟前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
居然是阿宋23 分钟前
Kotlin高阶函数 vs Lambda表达式:关键区别与协作关系
android·开发语言·kotlin
堕落似梦25 分钟前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
凉、介37 分钟前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci
Cao1234567893211 小时前
简易学生成绩管理系统(C语言)
c语言·开发语言
The Future is mine1 小时前
C# new Bitmap(32043, 32043, PixelFormat.Format32bppArgb)报错:参数无效,如何将图像分块化处理?
开发语言·c#
电鱼智能的电小鱼1 小时前
EFISH-SBC-RK3588无人机地面基准站项目
linux·网络·嵌入式硬件·机器人·无人机·边缘计算