第6天:文件操作和异常处理

学习目标

  • 掌握如何在Python中进行文件读写操作
  • 理解文件的打开模式
  • 学习如何处理文件中的数据
  • 理解异常处理的基本概念
  • 掌握使用tryexceptelsefinally进行异常处理
学习内容
1. 文件操作

在Python中,文件操作包括打开文件、读写文件内容和关闭文件。

文件的打开模式
  • 'r':只读模式(默认)
  • 'w':写入模式(会覆盖文件内容)
  • 'a':追加模式(将内容写入文件末尾)
  • 'b':二进制模式
  • 't':文本模式(默认)
  • '+':读写模式
打开文件
file = open('example.txt', 'r')  # 以只读模式打开文件
读取文件
  • 读取整个文件内容:

content = file.read()
print(content)
  • 逐行读取文件内容:

for line in file:print(line, end='')
  • 读取文件的特定行:

line = file.readline()
print(line)
  • 读取所有行并返回列表:

lines = file.readlines()
print(lines)
写入文件
  • 写入字符串:

file = open('example.txt', 'w')
file.write('Hello, world!')
  • 写入多行:

lines = ['First line\n', 'Second line\n', 'Third line\n']
file.writelines(lines)
      关闭文件
file.close()
使用with语句进行文件操作
with open('example.txt', 'r') as file:content = file.read()print(content)
2. 异常处理
try:# 可能引发异常的代码pass
except SomeException:# 处理异常的代码pass
else:# 如果没有异常,执行的代码pass
finally:# 无论是否有异常,都会执行的代码pass
常见异常类型
  • Exception:所有异常的基类
  • IOError:输入/输出操作失败
  • ValueError:传入无效参数
  • IndexError:索引超出序列范围
  • KeyError:请求不存在的字典键
示例
  • 捕获特定异常:

try:result = 10 / 0
except ZeroDivisionError:print("除数不能为零")
  • 捕获所有异常:

try:result = 10 / 0
except Exception as e:print("发生异常:", e)
  • 使用elsefinally

try:result = 10 / 2
except ZeroDivisionError:print("除数不能为零")
else:print("结果是:", result)
finally:print("无论是否发生异常,都会执行这段代码")
今日任务
  1. 文件操作:

    • 创建一个新文件,并写入一些文本内容。
    • 读取文件内容并打印出来。
    • 追加一些内容到文件末尾。
  2. 异常处理:

    • 编写代码模拟除零异常,并捕获异常进行处理。
    • 编写代码捕获并处理文件操作中的常见异常(如文件不存在)。
  3. 编写并运行以下示例代码:

# 文件写入示例
with open('example.txt', 'w') as file:file.write('Hello, world!\n')file.writelines(['First line\n', 'Second line\n', 'Third line\n'])# 文件读取示例
with open('example.txt', 'r') as file:content = file.read()print("文件内容:\n", content)# 追加内容到文件末尾
with open('example.txt', 'a') as file:file.write('This is an appended line.\n')# 读取文件并逐行打印
with open('example.txt', 'r') as file:for line in file:print(line, end='')# 异常处理示例
try:result = 10 / 0
except ZeroDivisionError:print("除数不能为零")
else:print("结果是:", result)
finally:print("无论是否发生异常,都会执行这段代码")# 捕获文件操作中的异常
try:with open('nonexistent.txt', 'r') as file:content = file.read()
except FileNotFoundError:print("文件不存在")
 

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

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

相关文章

马斯克公布xAI Grok-2大语言模型将于8月推出;GPT-5仍需时日

🦉 AI新闻 🚀 马斯克公布xAI Grok-2大语言模型将于8月推出 摘要:7月1日,马斯克在X平台宣布,其人工智能初创公司xAI的新大语言模型Grok-2将于8月推出。此前,xAI已发布了Grok-1.5和Grok-1.5 Vision模型。马…

运营商如何通过PCDN技术提高用户服务?

着互联网的快速发展,用户对网络速度和质量的要求越来越高。为了满足这些需求,内容分发网络(CDN)成为了关键的基础设施。而在CDN技术中,PCDN(PersonalCDN)作为一种新兴的技术,为运营商和用户提供了新的解决方案。本文将重点介绍PCD…

Drools开源业务规则引擎(一)- 安装与介绍

文章目录 [toc] Drools开源业务规则引擎(一)- 安装与介绍0.何为规则引擎1.Drools介绍1.1.依赖模块1.2.规则引擎 2.Drools安装2.1.依赖导入2.2.规则的输入和输出类型输入类型输出类型 2.3.创建规则文件2.4.构建可执行规则库2.5.执行结果: 3.Dr…

FreeRTOS的任务操作

文章目录 3 FreeRTOS任务操作3.1 创建task3.2 删除task3.2.1 空闲(idle)任务(守护任务)3.2.2 钩子(Hook)函数 3.3 设置,获取,task优先级3.3.1 设置任务优先级3.3.2 获取任务优先级 3…

自动驾驶---Motion Planning之多段五次多项式

1 前言 在之前的博客系列文章中和读者朋友们聊过Apollo的 Motion Planning方案: 《自动驾驶---Motion Planning之LaneChange》 《自动驾驶---Motion Planning之Path Boundary》 《自动驾驶---Motion Planning之Speed Boundary》 《自动驾驶---Motion Planning之轨迹Path优化》…

Oracle 上机

--1.(3分)查找每个部门的最高工资员工编号及其下属信息。 select e2.empno,e1.* from emp e1 join ( select * from emp where (deptno,sal) in (select deptno,max(sal) from emp group by deptno)) e2 on e1.mgr e2.empno; /* 2.(5分&…

Spring Boot集成checkstyle快速入门Demo

1.什么是checkstyle? CheckStyle是一个帮助程序员来遵守一直的编码规范的工具。默认,它支持google 和sun 的java style guide。而且它是高度可配置的,允许自定义编码规范,并可以对各种IDE(eclipse、Intellij&#xff…

昇思MindSpore学习笔记2-01 LLM原理和实践 --基于 MindSpore 实现 BERT 对话情绪识别

摘要: 通过识别BERT对话情绪状态的实例,展现在昇思MindSpore AI框架中大语言模型的原理和实际使用方法、步骤。 一、环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下…

前端在for循环中使用Element-plus el-select中的@click.native动态传参

<el-table ref"table" :data"editTableVariables" cell-dblclick"handleRowDblClick" style"width: 100%" > <!-- el-table-column: 表格列组件&#xff0c;定义每列的展示内容和属性 --><el-table-column prop&q…

8种数据迁移工具

前言 最近有些小伙伴问我&#xff0c;ETL数据迁移工具该用哪些。 ETL(是Extract-Transform-Load的缩写&#xff0c;即数据抽取、转换、装载的过程)&#xff0c;对于企业应用来说&#xff0c;我们经常会遇到各种数据的处理、转换、迁移的场景。 今天特地给大家汇总了一些目前…

【云原生】服务网格(Istio)如何简化微服务通信

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《未来已来&#xff1a;云原生之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、微服务架构的兴起 2、Istio&#xff1a;服务网格的佼…

服务器测评

服务器测评 Linux测评口令是否存在空口令账户密码长度和密码定期更换密码复杂度本地登录失败处理功能相关参数超时锁定sshd服务相关端口是否已经打开不允许root账户远程登录查看SELinux状态审计查看Linux中正在运行的服务查看已添加的iptables规则查看文件和目录的权限设置是否…

大文件上传是怎么做的

1. 分片上传 1. 把需要上传的文件按照一定的规则&#xff0c;分割成相同大小的数据块 2. 初始化一个分片上传任务&#xff0c;返回本次分片上传的唯一标识 3. 按照一定的规则把各个数据块上传 4. 发送完成后&#xff0c;服务端会判断数据上传的完整性&#xff0c;如果完整&a…

【Python】Python环境搭建教学#保姆级教学#手把手带你安装——内附Python环境搭建安装包(Python、PyCharm(社区版)安装包)

Python环境搭建 导读一、初识Python1.1 Python的由来1.2 Python的用途1.3 Python的优缺点1.4 Python的前景&#xff08;钱景&#xff09; 二、Python环境搭建2.1 运行环境——Python安装2.2 开发环境——PyCharm安装2.3 项目创建2.4 基本配置2.4.1 主题配置2.4.2 背景图设置2.4…

Vue笔记-vue中使用JS创建的函数

主要是公司对前端要求不高&#xff0c;能解决问题就行了&#xff0c;前端不太熟&#xff0c;用js这种处理起来方便&#xff0c;在此记录下。 在src中创建一个api目录&#xff0c;新建custom.js export const getDivHeightByClass (className) > {let divElements docume…

容器之docker

Docker 是一个开源的平台&#xff0c;旨在使应用程序的开发、部署和运行更加轻松。它利用容器技术&#xff0c;将应用程序及其依赖环境打包在一起&#xff0c;以便于在任何环境中一致运行。 概述 Docker 通过提供轻量级的虚拟化解决方案&#xff0c;使得开发者可以轻松创建、…

.NET 调用API创建系统服务实现权限维持

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏&#xff0c;主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧&#xff0c;对内网和后渗透感兴趣的朋友们可以订阅该电子报刊&#xff0c;解锁更多的报刊内容。 02基本介绍 本文内容部分节选自小报童…

达梦数据库的DBMS_STATS包

达梦数据库的DBMS_STATS包 基础信息 OS版本&#xff1a; Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a; DM Database Server 64 V8 DB Version: 0x7000c 03134284132-20240115-215128-20081达梦数据库&#xff08;DM Database&#xff09;提供了 D…

FreeRTOS开发五、任务状态切换以及空闲任务回收结束的任务

1、任务状态切换 任务创建的时候就会处于就绪状态ready&#xff0c;然后他马上就能够运行进入Running状态&#xff0c;运行中可以调用vTaskDelay进入阻塞状态&#xff0c;实际就是延时一小段时间&#xff0c;等待唤醒&#xff0c;当延时时间过去后就回到了就绪状态&#xff0…