python从0快速上手(九)文件和异常处理1

embedded/2024/10/15 16:25:09/

Python学习:文件和异常处理1

在编程的奇妙旅程中,文件和异常处理是两个不可或缺的技能。文件处理就像是在数字世界中操纵纸质文档,而异常处理则像是在代码的高速公路上安装交通警示标志,确保一切运行顺畅。让我们一起来看看如何在Python中掌握这两个强大的技能吧!

1. 文件操作

在Python中,文件操作就像是与数字世界的“图书馆”互动。你可以打开一本书(文件),阅读它的内容,甚至在它的页面上写写画画。

打开文件:
在Python中,你使用open()函数来打开一个文件。这个函数可以返回一个文件对象,通过这个对象,你可以读取或写入文件。

python"># 打开一个文件用于读取
with open('example.txt', 'r') as file:content = file.read()print(content)

在这里,我们使用了with语句来确保文件在操作完成后正确关闭。'r'参数表示以只读模式打开文件。

读取文件:
读取文件内容可以通过多种方式,比如一次性读取整个文件,或者逐行读取。

python"># 逐行读取文件
with open('example.txt', 'r') as file:for line in file:print(line.strip())  # 使用strip()去除每行末尾的换行符

写入文件:
写入文件也很简单,只需在open()函数中使用'w'(写入模式)或'a'(追加模式)。

python"># 写入文件
with open('example.txt', 'w') as file:file.write("Hello, World!\n")

这将覆盖example.txt文件的内容。如果使用'a'模式,新内容将被追加到文件末尾。

实例:创建一个Journal类来记录每日笔记

python">class Journal:def __init__(self, filename):self.filename = filenamedef write_entry(self, entry):with open(self.filename, 'a') as file:file.write(entry + "\n")def read_entries(self):with open(self.filename, 'r') as file:return file.readlines()# 创建Journal对象
my_journal = Journal("daily_journal.txt")# 写入笔记
my_journal.write_entry("今天是学习文件操作的好日子。")
my_journal.write_entry("我学会了如何读取和写入文件。")# 读取笔记
entries = my_journal.read_entries()
for entry in entries:print(entry.strip())

在这个例子中,Journal类提供了写入和读取日记条目的方法。

2. 异常处理

异常处理是编程中的一项重要技能,它能让你的程序在遇到错误时不会突然崩溃,而是能够优雅地处理问题。

基本异常处理:
在Python中,你使用tryexcept块来捕获和处理异常。

python">try:result = 10 / 0
except ZeroDivisionError:print("哎呀,不能除以零!")

在这个例子中,尝试除以零将引发一个ZeroDivisionError异常,except块捕获了这个异常,并打印了一条错误消息。

多个异常处理:
你可以在一个try块中捕获多个异常。

python">try:number = int(input("请输入一个数字:"))result = 10 / number
except ValueError:print("请输入一个有效的数字!")
except ZeroDivisionError:print("不能除以零!")

实例:创建一个函数来安全地读取文件

python">def read_file_safely(filename):try:with open(filename, 'r') as file:return file.read()except FileNotFoundError:return "文件未找到。"except Exception as e:return f"发生错误:{e}"# 使用函数
content = read_file_safely("non_existent_file.txt")
print(content)  # 输出:文件未找到。

在这个例子中,如果文件不存在,函数将捕获FileNotFoundError异常,并返回一个友好的错误消息。

自定义异常:
你可以定义自己的异常,以表示特定于你程序的错误情况。

python">class InvalidAgeError(Exception):passclass Person:def __init__(self, age):if age < 0:raise InvalidAgeError("年龄不能为负数。")self.age = age# 测试自定义异常
try:person = Person(-5)
except InvalidAgeError as e:print(e)  # 输出:年龄不能为负数。

在这个例子中,我们定义了一个InvalidAgeError异常,并在Person类的构造函数中使用它。

实例:创建一个Calculator类来处理数学运算异常

python">class Calculator:def divide(self, a, b):try:return a / bexcept ZeroDivisionError:return "除数不能为零。"# 使用Calculator类
calculator = Calculator()
print(calculator.divide(10, 2))  # 输出:5.0
print(calculator.divide(10, 0))  # 输出:除数不能为零。

在这个例子中,Calculator类中的divide方法能够处理除以零的异常情况。

小结

文件操作和异常处理是编程中的重要技能。文件操作让你能够读取和写入文件,而异常处理则让你的程序更加健壮,能够优雅地处理错误。通过这些技能,你可以创建出更加强大和用户友好的程序。

现在,你已经掌握了Python中文件操作和异常处理的基础。但是,这只是冰山一角。在编程的世界里,还有更多高级的概念等着你去探索。编程就像是一场冒险,而你已经迈出了第一步。祝你在编程的世界里旅途愉快!🐍💻


http://www.ppmy.cn/embedded/127952.html

相关文章

值联云卡自动售卡商业系统+视频安装教程

简介&#xff1a; 值联云卡自动售卡商业系统v2.0.0 安装环境&#xff1a; 1. Linux 推荐 centos7 以上版本 2. 宝塔环境&#xff1a; 推荐最新版本 3. Mysql版本&#xff1a;5.7 4. Jdk版本&#xff1a;1.8 适用场景&#xff1a; 适用于各种电商、优惠卷、论坛邀请码、…

自定义注解和组件扫描在Spring Boot中动态注册Bean(二)

在Spring Boot中&#xff0c;自定义注解和组件扫描是实现动态注册Bean的两种重要手段。通过它们&#xff0c;开发者可以灵活地管理Spring容器中的Bean&#xff0c;提高开发效率和代码的可维护性。本文将详细讲解自定义注解和组件扫描在Spring Boot中如何动态注册Bean。 自定义…

使用XML实现MyBatis的基础操作

目录 前言 1.准备工作 1.1⽂件配置 1.2添加 mapper 接⼝ 2.增删改查操作 2.1增(Insert) 2.2删(Delete) 2.3改(Update) 2.4查(Select) 前言 接下来我们会使用的数据表如下&#xff1a; 对应的实体类为&#xff1a;UserInfo 所有的准备工作都在如下文章。 MyBatis 操作…

机器学习笔记-1

文章目录 前言一、How to find a function二、Define Loss from Training Data三、Optimization总结 前言 机器学习&#xff08;Machine Learning, ML&#xff09;是一门让计算机通过数据来自动学习和改进的技术。它的核心理念是通过分析大量的历史数据来找到其中的规律&#…

通过Dockerfile 安装rabbitMq

一、编写Dockerfile Dockerfile 指令详细注释如下&#xff1a; # 使用带有管理插件的官方 RabbitMQ 镜像作为基础 FROM rabbitmq:3.9-management# 复制自定义模板文件到 RabbitMQ 管理插件的模板目录 # 这里假设 ./users.ejs 和 ./limits.ejs 是用于自定义管理界面的模板文件…

一些简单的编程题(Java与C语言)

引言&#xff1a; 这篇文章呢&#xff0c;小编将会举一些简单的编程题用来帮助大家理解一下Java代码&#xff0c;并且与C语言做个对比&#xff0c;不过这篇文章所出现的题目小编不会向随缘解题系列里面那样详细的讲解每一到题&#xff0c;本篇文章的主要目的是帮助小编和读者们…

成都睿明智科技有限公司共创抖音电商新篇章

在当今这个数字化浪潮汹涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为众多商家竞相追逐的新蓝海。在这片充满机遇与挑战的领域中&#xff0c;成都睿明智科技有限公司凭借其专业的服务、创新的策略和敏锐的市场洞察力&#xff0c;成为了众多商家信赖的合…

Xcode报错:Undefined symbols,Linker command failed with exit code1

这种编译报错点击Xcode左侧的小红叉这两行点击没反应&#xff0c;不知道具体报错原因怎么弄&#xff1f; 解决办法&#xff1a; 第一步&#xff1a;点周Xcode左侧工具栏的编译log日志按钮 第二步&#xff1a;第一步点击完Xcode左侧出现了编译历史列表&#xff0c;可以看到有报…