《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)

29613cd8d666e2bf586e542e7f0d1b5.png

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

6.1 文件读写操作

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

6.1.1 打开文件

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

# 打开文件以进行读取
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()方法。

with open("example.txt", "r") as file:
    content = file.read()

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

6.1.3 写入文件内容

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

with open("output.txt", "w") as file:
    file.write("Hello, World!")

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

6.1.4 关闭文件

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

file = open("example.txt", "r")
content = file.read()
file.close()

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

6.1.5 异常处理

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

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 的模块。

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 模块。

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 的模块。

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文件。

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来安装它:

pip install mysql-connector-python

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

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 创建表格

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

6.3.2.2 插入数据

# 插入数据
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
values = ("Alice", 30)
cursor.execute(sql, values)
# 提交更改
conn.commit()

6.3.2.3 查询数据

# 查询数据
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
for row in result:
    print(row)

6.3.2.4 更新数据

# 更新数据
sql = "UPDATE users SET age = %s WHERE name = %s"
values = (25, "Alice")
cursor.execute(sql, values)
# 提交更改
conn.commit()

6.3.2.5 删除数据

# 删除数据
sql = "DELETE FROM users WHERE name = %s"
values = ("Alice",)
cursor.execute(sql, values)
# 提交更改
conn.commit()

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

6.3.3 提交更改和关闭连接

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

# 提交更改
conn.commit()
# 关闭游标和连接
cursor.close()
conn.close()

6.3.4 异常处理

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

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 编程的奇妙世界,你将能够构建强大的数据库驱动应用程序!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
6天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据
|
11天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
21天前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
51 20
|
27天前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
|
28天前
|
存储 JSON 对象存储
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
|
1月前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
1月前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
2月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控

热门文章

最新文章

推荐镜像

更多