ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python进阶笔记

2022-01-19 20:34:01  阅读:161  来源: 互联网

标签:语句 文件 进阶 python except 笔记 try finally 异常


1.文件

(1)文件也是一个对象

(2)打开文件

f = open(文件名,模式),文件名可以是相对路径或者绝对路径

模式有:"r" 只读、“w” 写入、“a” 追加,“r+/w+”读写

使用 'r' 或 'U' 模式打开的文件必须是已经存在的。 使用 'w' 模式打开的文件若存在则首先清空, 然后(重新)创建。 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将追加到文件的末尾。 即使你 seek 到了其它的地方。 如果文件不存在, 将被自动创建, 类似以 'w'模式打开文件。

 

 (3)属性

 

 (4)关闭

 

 (5)写入

write()方法可将任何字符串写入一个打开的文件。

write()方法不在字符串的结尾不添加换行符('\n'):

 

 主动调用close()写缓存同步到磁盘,或者写入数据量大于或等于写缓存,写缓存同步到磁盘

(6)读取

read(size)方法从一个打开的文件中读取一个字符串。size若不填则为尽量多的字符串,若填了则为结束位置。

readline()读取当前行,允许有参数

readlines()读取剩余行,返回一个字符串列表

 

 (7)文件放置

tell()方法告诉你文件内的当前位置;即下一次的读写会发生在文件开头这么多字节之后:

seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

 

 (8)重命名

Python的os模块提供了帮你执行文件处理操作的方法,必须先导入它,才可以调用。

os.rename(当前文件名,新的文件名

(9)删除文件

同样需要导入os模块,才可以调用。

os.remove(文件名)

2.错误和异常

(1)错误类型
OverflowError数值运算超出最大限制
ZeroDivisionError 除(或取模)零 (所有数据类型)
AttributeError对象没有这个属性
IOError 输入/输出操作失败
IndexError 序列中没有此索引(index)
NameError 未声明/初始化对象 (没有属性)
SyntaxError Python 语法错误
TypeError 对类型无效的操作
ValueError 传入无效的参数

(2)try-except处理异常

try-except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

 

 当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

 

 except若不带任何异常类型,即捕获所有发生的异常。但是不能捕获语法错误异常,如if a,因为是运行前错误而不是运行时错误

也可带多种类型except(Exception1[, Exception2[,...ExceptionN]]]):

错误类型后面跟着变量e,可以print错误提示

 

 (3)try-finally语句

语句是否发生异常都将执行最后的代码。将异常保留下来交给系统处理,本身不处理异常。

作用:为处理异常事件提供清理机制,用来关闭文件或者释放系统资源。

 

 可以使用except语句或者finally语句,但是两者不能同时使用。else语句也不能与finally语句同时使用。

(4)try-except-finally  

若try语句没有捕获异常,执行完try代码段后,执行finally

若try捕获异常,首先执行except处理异常,然后执行finally

(5)try-except-else-finally

若try语句没有捕获异常,执行完try代码段后,执行else代码段,最后执行finally

若try捕获异常,首先执行except处理错误,然后执行finally

(6)try-finally-except

当在try块中抛出一个异常,立即执行finally块代码。

finally块中的所有语句执行后,异常被再次提出,并执行except块代码。

(7)with语句

用来代替try-except-finally语句,使代码更加简洁

 

 context表达式返回是一个对象

var用来保存context返回对象,单个返回值或元组

with_suite使用var变量对context返回对象进行操作

 

 打开1.txt文件

f变量接收文件对象返回的对象

with中的代码执行完成后,关闭文件

程序使用了上下文管理器 (with...as...)。上下文管理器有隶属于它的程序块。当隶属的程序块执行结束的时候(也就是不再缩进),上下文管理器自动关闭了文件

运用情况:①文件操作 ②进城之间互斥操作:例如互斥锁  ③支持上下文的其他对象

(8)raise主动抛出异常

 

 (9)assert语句

断言语句:assert语句是用于检测表达式是否为真,如果为假,引发AssertionError错误

 

 (10)自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

自定义异常只能主动触发。

 

 3.模块和包

(1)概念介绍

#test.py  自身模块名test

import p1.util  引用p1包的模块util

print p1.util.f(2)  调用p1.util的函数f()

如何区分包和普通目录 包下面有个__inti__.py文件

(2)如果我们只希望导入用到的math模块的某几个函数,而不是所有函数,可以用下面的语句:

 

(3)可以给函数起个“别名”来避免冲突:as

 

 (4)如果导入的模块不存在,Python解释器会报 ImportError 错误

4.作用域

(1)函数作用域LEGB   L>E>G>B

L:local 函数内部作用域

E:enclosing 函数内部与内嵌函数之间,即闭包

G:global全局作用域

B:bulid-in 内置作用域 list,tuple之类

 

 

 


标签:语句,文件,进阶,python,except,笔记,try,finally,异常
来源: https://www.cnblogs.com/zhangyunan/p/15823978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有