Python 高级编程:文件操作与错误处理

news2024/10/7 12:23:00

在前几篇文章中,我们介绍了Python的基本语法、函数和模块以及面向对象编程。这些知识对于大部分日常编程问题已经足够,但对于需要分析大数据的人来说,这些还不够。本章将介绍Python的文件操作以及错误处理与调试。
image.png

目录

    • 文件操作
      • 读文件
      • 写文件
    • 错误处理与调试
      • 常见异常类型
      • 捕获异常
      • 跳过异常
      • 自定义异常

文件操作

在数据分析中,我们经常需要读取和处理外部数据。Python 提供了丰富的文件操作功能,可以方便地读取和写入文件。

读文件

使用 open() 函数可以打开文件,并通过参数 'r' 表示读取模式。

f1 = open("/Users/xiaoyangli/Desktop/hello.txt", "r")

文件打开后,可以通过多种方式读取文件内容:
image.png

# 读取整个文件内容
content = f1.read()

# 读取固定字节数的内容
content = f1.read(size)

# 读取一行内容
line = f1.readline()

# 读取所有行,并返回一个列表
lines = f1.readlines()

# 逐行读取文件内容
for line in f1.readlines():
    print(line)

记住文件打开后一定要关闭文件:

f1.close()

写文件

写文件和读文件类似,首先使用 open() 函数打开文件,并通过参数 'w' 表示写入模式。

f2 = open("/Users/xiaoyangli/Desktop/hello.txt", "w")

然后使用 write() 方法写入内容:
image.png

# 写入字符串
f2.write("Hello world!")

# 写入列表
for item in list:
    f2.write(item + "\n")

注意,使用 'w' 参数会覆盖原有内容。如果只想在文件末尾追加内容,可以使用 'a' 参数:

f2 = open("/Users/xiaoyangli/Desktop/hello.txt", "a")
f2.write("Append this line.")

同样,写文件后也要记得关闭文件:

f2.close()

错误处理与调试

在编写程序时,处理错误和调试代码是非常重要的。Python 提供了丰富的异常处理机制,使我们能够优雅地处理错误。

常见异常类型

image.png

以下是一些常见的Python异常类型:

  • NameError: 变量未定义
  • ZeroDivisionError: 除数为零
  • SyntaxError: 语法错误
  • IndexError: 索引超出范围
  • KeyError: 关键字不存在
  • IOError: 输入输出错误
  • AttributeError: 访问未定义的对象属性
  • ValueError: 数值错误
  • TypeError: 类型错误

捕获异常

Python 的错误处理机制使用 try...except...finally 结构。当 try 块中出现错误时,程序会跳到 except 块中执行。无论是否出现错误,finally 块中的代码都会执行。
image.png

try:
    f = open("hello.txt", "r")
except IOError as e:
    print("IOError:", e)
else:
    print("File opened successfully")
    f.close()
finally:
    print("Execution completed")

跳过异常

有时,我们希望捕获异常后让程序继续执行,而不是中断。
image.png

try:
    f = open("hello.txt", "r")
except IOError as e:
    print("IOError:", e)
    pass

自定义异常

异常和错误都是类。所有异常类都继承自 BaseException。我们可以定义自己的异常类,以便根据需要抛出特定异常。
image.png

class FileError(IOError):
    pass

try:
    f = open("README.txt", "r")
    if "README.txt":
        raise FileError("Don't open README")
except FileError as e:
    print(e)

通过以上内容,我们介绍了Python中的文件操作与错误处理。这些高级技巧不仅能帮助你更好地处理数据,还能提高程序的健壮性和可维护性。希望这篇文章对你有所帮助!

Happy coding!

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1866120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙开发系统基础能力:【@ohos.systemTime (设置系统时间)】

设置系统时间 本模块用来设置、获取当前系统时间,设置、获取当前系统日期和设置、获取当前系统时区。 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import systemTime …

线性代数基础概念:行列式

目录 线性代数基础概念:行列式 1. 行列式的定义 1.1 递归定义 1.2 代数余子式定义 1.3 几何定义 2. 行列式的性质 2.1 行列式等于其转置的行列式 2.2 交换两行或两列,行列式变号 2.3 将一行或一列乘以一个数 k,行列式乘以 k 2.4 将…

初创企业合规管理中的企业合规义务边界问题

在初创企业的迅猛发展过程中,合规管理是确保公司可持续成长和避免潜在风险的关键因素。而在合规管理中,界定企业边界尤为重要,它关系到企业如何合理规划业务范围、管理内部外部关系以及维护企业形象和法律责任的清晰。 一、初创企业面临的合…

转让北京资产评估公司变更需要什么条件和要求

北京资产评估公司是有限责任公司。因为有限责任公司具有人合属性,股东的个人信用及相互关系直接影响到公司的风格甚至信誉,所以各国公司法对有限责任公司股东向公司外第三人的转让股权,多有限制性规定。大致可分为法定限制和约定限制两类。公…

没什么用的java技巧

1.将需要注入bean的方法,包装为静态方法,让其看起来不需要依赖注入等操作,但实际依然需要

关于mysq数据库备份的几个问题

1 mysql怎么双机热备? 或者怎么两个mysql服务器互相同步? MySQL的双机热备或两个MySQL服务器之间的互相同步,通常通过几种不同的同步机制来实现,这些机制确保了数据的实时更新和备份。以下是几种常见的同步方式及其实现步骤&…

程序员在企业中是如何做需求的

在企业中,一个需求从产生到完成生命周期是什么样的。 它可以分为这样的步骤: 需求分析 -> 设计(原型、功能、接口设计) -> 技术选型 -> 搭建项目框架 -> 编码(实现业务逻辑) -> 测试&#…

Python数据分析之-Oracle数据库连接

文章目录 cx_Oracle 介绍cx_Oracle运行原理cx_Oracle 安装linux环境安装windows环境安装 cx_Oracle 使用单独使用结合Pandas使用 参考资料 cx_Oracle 介绍 cx_Oracle 8是一个Python扩展模块,它提供了对Oracle数据库的访问能力。以下是cx_Oracle 8的一些关键特性和功…

springboot vue 开源 会员收银系统 (8) 收银台、开卡结算及订单的优化升级

前言 完整版演示 开发版演示 在之前的开发进程中,我们基本搭建了收银台的基础。这次着重梳理一下收银台相关功能的开发及优化情况。 1.会员查询与开卡 收银台新增加了会员筛选功能 并且会员和会员卡是一对多的关系 理论可以开无数张卡 默认选择一张卡 会员卡选择…

国家自然科学基金标书大全(2002-2024)

数据来源:在20世纪80年代初,为了促进中国的科技体制革新并改革科研资金分配机制,中国科学院的89位院士联名向党和国家领导人提出建议,设立了国家自然科学基金的设立。国自然基金自创立以来,根据国家发展科学技术方针、…

张大哥笔记:赚钱第一步,把手弄脏,准时出摊

出来混,最重要的是什么?是“出来”。同样的,赚钱第一步,也是先出来,立刻开始行动起来! 想要赚钱,最关键的因素是什么?答案是“先出来”。赚钱这件事,本身就是反人性的&am…

引导过程与服务器控制

一、引导过程 1.开机自检 服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit, 中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移 交系统控制权&#xff0c…

深入学习Java1415新特性

一、超实用的Java14新特性 1.Java14新特性概述 2.环境安装 3.超实用新特性

png格式快速压缩该怎么做?在电脑压缩png图片的方法

png格式的图片如何快速压缩变小呢?现在网络的不断发展,图片是日常用来分享展示内容的一种常用手段,其中使用最多的一种图片格式就是png,png格式具有无损压缩支持透明底的特性,在很多的场景下都会使用。 现在图片的清晰…

2024体育赛事一波接一波,大学生借IKCEST国际大数据竞赛打造AI“嘴强”主播

2024德国欧洲杯激战正酣,不但比赛精彩纷呈,各种新科技还竞相“整活”。从虚拟广告技术到人工智能辅助裁判,令人目不暇接。而“AI体育”的想象空间,还不仅于此。 近日,2024IKCEST第六届“一带一路”国际大数据竞赛暨第…

ES6深潜指南:解锁JavaScript类与继承的高级技巧,让您的代码更加优雅

前言 随着前端技术的迅猛发展,JavaScript已经成为构建现代Web应用不可或缺的编程语言。ES6(ECMAScript 2015)引入了许多期待已久的特性,其中类(Classes)和继承机制的引入,极大地增强了JavaScrip…

ONLYOFFICE 桌面编辑器 8.1使用体验分享

目录 编辑器市场现状与用户选择 ONLYOFFICE桌面编辑器概览和功能 ONLYOFFICE桌面编辑器概览 功能丰富的PDF编辑器 演示文稿编辑器的创新 文档编辑的灵活性 电子表格的高级功能 语言和本地化 用户界面和体验 媒体播放 云服务和本地处理 跨平台支持 总结 在线亲身体…

C++用Crow实现一个简单的Web程序,实现动态页面,向页面中输入数据并展示

Crow是一个轻量级、快速的C微框架,用于构建Web应用程序和RESTful API。 将处理前端页面的POST请求以添加数据的逻辑添加到 /submit 路由中,并添加了一个新的路由 / 用于返回包含输入框、按钮和表格的完整页面。当用户向表格添加数据时,JavaS…

Prometheus中添加基本身份验证功能

在Prometheus中添加基本身份验证功能,可以按照以下步骤进行: 一、生成哈希密码 首先,需要安装bcrypt工具,用于生成哈希密码。这可以通过Python的bcrypt库来完成。如果未安装,可以使用pip进行安装。 创建一个Python脚…

酷开科技丨酷开系统大屏购物 打造沉浸式购物体验

在这个信息化的时代,购物已经不仅仅局限于传统的线下店铺,线上购物逐渐成为了我们生活中重要的一部分。而大屏购物作为线上购物的一种形式,更是凭借其独特的优势和实用的技巧,成为了消费者们的新宠。随着科技的进步和消费者需求的…