【0806 | Day 9】异常处理/基本的文件操作
一、异常处理
异常即报错,可分为语法异常和逻辑异常
1. 语法异常
举个栗子
if #报错 syntaxerror
0 = 1 #报错 syntaxerror
...
正经地举个栗子
print(1)
try:
num = input('请输入: ') #
dic = {'':1} #
print(dic[num]) # print(3) #
1 / int(num) #
print(4) # except Exception as e:
#Exception包括'ZerodivisionError'和'Keyerror'
#异常捕捉
print('e:',e) #
print(2) #
#第一种:输入0
1
请输入: 0
1 #2 & #3
3 #
#5 & #6不执行
e: division by zero #
2 #
#第二种:输入非0
#2 & #3不执行
1
请输入: 2
e: '' #7 返回输入值(即不在字典内)
2 #
2. 逻辑异常
举个栗子
1/0 #报错,逻辑异常有多种形式
正经地举个栗子
print(1)
try: #尝试一下
print(3) #执行/自上而下
1/0 #报错不影响
print(4) #不执行/自上而下
except: #除此之外
pass
print(2)
#
#
#
二、基本的文件操作
1、打开文件的三种方式
#第一步,找到文件路径
path = r'D:\fxyadela\上课练习\test.py' #绝对路径
path = r'test.py' #相对路径
#第二步,双击打开
f = open(path,'r或w')
print(f)
#第三步,看文件
data = f.read()
print(data)
#第四步,写文件
f.write('nick young')
#第五步,关闭文件
f.close()
#只写,返回地址并在test.py中输入'Nick Young'
path = r'D:\fxyadela\上课练习\test.py' #绝对路径
f = open(path,'w')
print(f)
f.write('nick young')
f.close()
#<_io.TextIOWrapper name='D:\\fxyadela\\上课练习\\test.py' mode='w' encoding='cp936'>
#Nick Young #在test.py中
#只读,返回地址和test.py中的字符
#假设test.py中输入'Nick Young'
path = r'D:\fxyadela\上课练习\test.py' #绝对路径
f = open(path,'r')
print(f)
data = f.read()
print(data)
f.close()
#<_io.TextIOWrapper name='D:\\fxyadela\\上课练习\\test.py' mode='r' encoding='cp936'>
#Nick Young
绝对路径: 从根目录开始找
相对路径: 当前执行文件所在的文件夹开始找
2、早期读写共同执行时存在的问题
1.文件既可读又可写,假设文件内容为1
2.系统在1后面追加2(需要10s)
3.在这10s内,系统读文件需要5秒,此时读出只有1,系统会写2
4.等读完文件,再写完2,此时系统10s结束,已经变为12
5.则两者12相遇,报错
注意: 所以,只读or只写
3、关闭文件的注意事项
f = open('test.py','r')
data = f.read()
print(data)
del f #不关闭操作系统,只删除f引用及在内存中的占用
f = open('test.py','r')
data = f.read()
try:
1/0
print(data)
except Exception as e:
print('e:',e)
finally:
f.close() #既删除f引用,又会命令操作系统关闭对外存文件的占用
4.TODO用法
if True:
#TODO:猜年龄逻辑运算(类似于索引)
pass
【0806 | Day 9】异常处理/基本的文件操作的更多相关文章
- 07_Python语法示例(基础语法,文件操作,异常处理)
1.写程序在终端输出图形 ######## # # # # ######## print("#" * 8) print("#" + " " ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- Python学习Day2笔记(集合和文件操作)
1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...
- go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )
go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...
- [python拾遗]文件操作
文件操作 1.open()函数 open()函数主要用于文件处理,一般分为下面3个过程: 1.打开文件 2.操作文件 3.关闭文件 常见的格式示例: f = open('note.txt','r') ...
- Android数据存储-文件操作
一.预备知识 1.Android中的MVC设计模式 MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型可以对于多种视图模型,比如一批统计 ...
- Python 函数基础、有序集合、文件操作(三)
一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...
- Day3 文件操作和函数
一 文件操作 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1.1打开文件读取内容 print(open("sounds","r", ...
- Linux下普通IO文件操作函数---C语言
普通文件IO总结 FILE结构体 typedef struct { int level; /*填充/清空一级缓存*/ unsigned flag; /*文件状态指针*/ ...
随机推荐
- Java设计模式学习笔记(二) 简单工厂模式
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为 ...
- 异常——cmd下javac错误:编码GBK不可映射字符
在看菜鸟教程时候用记事本创建文件,之后用notepad++编辑后,运行出现错误. 首先从信息上知道这是编码的问题了.开始试了下再notepad++上打开文件选择标签栏的“Encoding”中的“enc ...
- 0x31 prime distance(质数)
题目描述: 给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对. 同时,你还需要找到距离最远的 ...
- SpringBoot2.x 整合Spring-Session实现Session共享
SpringBoot2.x 整合Spring-Session实现Session共享 1.前言 发展至今,已经很少还存在单服务的应用架构,不说都使用分布式架构部署, 至少也是多点高可用服务.在多个服务器 ...
- 比赛:小奔的矩形solution
分析: 交叉相乘,然后除以最大公因数(为了减少爆常数的可能性std做了两次,数据很大),得到的两个数相加减二就是答案 代码: var p,q,n,m,a,b,i:int64; begin readln ...
- 如何在windows上玩转redis的最新特性?
想要了解redis的最新特性,可是windows下的可以安装的版本最高为3.2,想要验证redis的诸如stream特性的话,就无能为力了. 解决方法之一在windows上安装虚拟机,然后再虚拟机上安 ...
- org.mybatis.spring.MyBatisSystemException异常及处理
org.mybatis.spring.MyBatisSystemException异常处理 测试场景 在测试springboot中使用MyBatis/通用Mapper的自定义方法时出现此异常. 异常如 ...
- 【Java高级】(一)JVM
5.2.1.在Java中如何判断对象已死? 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不可能被使用的 ...
- spring applicationContext.xml文件移到resources目录下
SpringMVC的框架默认目录结构 修改后的目录结构及web.xml 同时在pom里的配置:将resources目录打包到web-inf/classes目录下<resources> ...
- 如何启用linux的路由转发功能
如何使用iptables的NAT功能把红帽企业版Linux作为一台路由器使用? 方法: 提示: 以下方法只适用于红帽企业版Linux 3 以上. 1.打开包转发功能: echo "1&quo ...