异常

异常的简介

• 程序在运行过程中可能会出现一些错误。比如: 使用了不存在的索引,两个不同类型的数据相加…这些错误我们称之为异常
• 处理异常 程序运行时出现异常,目的并不是让我们的程序直接终止!Python是希望在出现异常时,我们可以编写代码来对异常进行处理

try语句
try:代码块(可能出错的代码)
except:print('这是代码出错的解决方案')else:代码块(try语句没有问题,就执行else语句)

异常的传播

• 当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会在进行传播。如果函数中没有对异常进行处理,则异常会继续向函数调用传播。如果函数调用处处理了异常,则不再传播异常,如果没有处理则继续向调用处传播。直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并显示异常信息。
• 当程序运行过程中出现异常以后,所有异常信息会保存到一个异常对象中。而异常传播时,实际上就是异常对象抛给了调用处



异常对象

try完整语句try:代码块(可能出现错误的语句)except 异常类型 as 异常名:代码块(出现错误以后的处理方式)except 异常类型 as 异常名:代码块(出现错误以后的处理方式)except 异常类型 as 异常名:代码块(出现错误以后的处理方式)....else:代码块(没出错时要执行的语句)finally:代码块(是否出错该代码块都会执行)try是必须的 else有没有都可以except和finally至少有一个



文件

文件打开

• 文件(file) 通过Python程序来对计算机中的各种文件进行增删改查的操作 文件也叫I/O(Input/Output)

• 文件的操作步骤

  1. 打开文件
  2. 对文件进行各种操作(读、写)然后保存
  3. 关闭文件

• 文件会有一个返回值。返回一个对象,这个对象就表示的是当前的文件

关闭文件

• 调用close()方法来关闭文件
• with…as 语句不用写close()来关闭。它自带关闭

文件的读取

读取文件

• 通过read()来读取文件的内容

• 调用open()来打开一个文件,可以将文件分为2中类型

1.一种 纯文本文件(使用utf-8编码编写的文件)
2.一种 二进制文件(图片 mp3 视频…)
3.open()打开文件时,默认是以文本文件的形式打开的 open()默认的编码为None。所以处理文本文件时要指定编码




较大文件的读取

• 通过read()读取文件内容时会将文件中所有的内容全部读取出来。如果对于读取的文件比较大的话。会一次性的将文件加载到内容中。容易导致内存泄露。所以对于较大的文件。不要直接调用read()
• read()可以接收一个size作为的参数。该参数用来指定要读取字符的数量。默认值为-1.-1也就是要读取全部的内容
• 每次读取都会从上次读取到的位置开始。如果字符的数量小于size。则会读取所有的。如果读取到最后的文件。则会返回空串
• readline() 该方法用来读取一行
• readlines() 该方法用于一行一行的读取内容,它会一次性将读取到的内容封装到一个列表当中返回


文件的写入

• write()来向文件中写入内容
1.该方法可以分多次向文件写入内容
2.写入完成之后该方法会返回写入的字符的个数

• 使用open()函数打开文件时,必须要指定打开文件要做的操作(读、写、追加)。如果不指定操作类型,则默认是读取文件,而读取文件是不能向文件中写入

  1. r 表示只读
  2. w表示可以写。使用w写入文件时,如果文件不存在则会创建一个文件。如果文件存在则会覆盖原文件内容




二进制文件写入

• 读取文本文件时,size是以字符为单位。读取二进制文件时,size是以字节为单位
• 我们用wb来写入二进制文件

From the distanceit looked like a skinny tube,
but as we got closer we could see it flesh out before our eyes.
It was tubular all right but fatter than we could see from far away.
Furthermore, we were also astonished to notice that the building was really in two parts.
a pagoda sitting on top of a tubular one-story structure.

编程基础的第十五课——异常和文件相关推荐

  1. Python编程基础:第二十九节 异常Exception

    第二十九节 异常Exception 前言 实践 前言 我们在写代码时不可避免地会出错,这时候编译器便会抛出异常并中断程序的执行.针对这种情况,我们可以采用异常处理的方式捕捉程序中的异常信息,并将异常信 ...

  2. Python编程基础:第二十五节 args参数*args

    第二十五节 args参数*args 前言 实践 前言 我们目前学习到的函数的参数个数都是固定的,那么我们是否可以指定任意多个参数呢?其实是可以的,这里就用到了args参数,它可以将用户指定的任意多个参 ...

  3. Python编程基础:第十五节 二维列表2D Lists

    第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...

  4. 零基础班第十五课 - Hive DDL详解

    第一章:上次课回顾 1.1 Hive部署过程中出现的坑 第二章:Hive DDL语句 2.1 图解Hive结构 2.2 创建数据库 2.2.1 数据库建表语句 2.2.2 数据库解析 2.2.3 修改 ...

  5. python编程基础(lv3_第五课)

    学习目标: 面向对象编程 学习内容: 1. [面向对象编程介绍(上)] 2. [面向对象基础介绍(下)] 学习时间: 2小时 学习产出: 1. [面向对象编程介绍(上)] 1.了解面向过程和面向对象* ...

  6. 20190901 On Java8 第十五章 异常

    第十五章 异常 要想创建健壮的系统,它的每一个构件都必须是健壮的. 异常概念 C++的异常处理机制基于 Ada,Java 中的异常处理则建立在 C++的基础之上(尽管看上去更像 Object Pasc ...

  7. NeHe OpenGL第三十五课:播放AVI

    NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...

  8. LINUX学习基础篇(十五)软件包管理

    LINUX学习基础篇(十五)软件包管理 软件包管理 软件包分类 源码包 二进制包 选择 依赖性 rpm包安装 rpm包命名规则 rpm包安装和卸载 服务命令 rpm查询命令 验证 数字证书 rpm中文 ...

  9. 基础系列【十五】--Pattern

    基础系列[十五]--Pattern Pattern Pattern java.lang.Object java.util.regex.Pattern (public final class Patte ...

最新文章

  1. [linux内核][LINUX内核编程]学习笔记(一)
  2. windows配置java运行环境
  3. MySQL 性能调优专题一(索引数据结构详解)
  4. 大数据面临的挑战:当大数据遭遇云计算
  5. 关于WCF、WebAPI、WCFREST、WebService之间的区别总结
  6. 计算机教室安全预案 博客,校园安全应急预案
  7. android圆形头像 demo,Android图像处理之绘制圆形头像
  8. eclipse闪退打不开问题
  9. NLP学习难在哪里?这份最全NLP学习路线图帮你解决难题!
  10. asp.net 两个控件放一行_思维导图?试试这两个宝藏网站吧
  11. python 全栈开发,Day81(博客系统个人主页,文章详情页)
  12. Scrapy基础(八)————图片下载后将本地路径添加到Item中
  13. CSU 8月月赛 Decimal 小数化分数
  14. 如何卸载office201032位_win7卸载office2010的步骤_win7如何完美卸载office2010-win7之家...
  15. 23_Open_Loop
  16. filtic函数 matlab_matlab求相位函数
  17. 计算机网络安全开题报告怎么写,网络安全开题报告范文精选
  18. 第十一届Java B组蓝桥杯真题
  19. 我的Java学习之路(三)-- 自动饮料售卖机控制台程序
  20. Win10切换共享文件夹账号

热门文章

  1. VS Code 2022路线图:大量Spring Boot优化提上日程
  2. 杀死我们的,大都是光鲜甚至美好的东西
  3. 【知识点】UDS刷写的一般流程介绍
  4. fat文件系统基础知识
  5. python有什么游戏可以开发-主流游戏引擎有哪些?python能开发手游?
  6. 人机交互课堂分享 手势交互与体感交互
  7. asp.net Oracle数据库左侧目录树及右侧数据绑定及分页
  8. 区块链城市 CityDAO-元宇宙的雏形 |号外:11月23日下午数据觉醒元宇宙 圆桌论坛...
  9. Spring-Boot运行成功,但是localhost拒绝我们的网页请求报错打不开两个报错点
  10. 手机无线投屏win10