文件、异常处理、模块与包

1. 文件操做

1.1 文件的概念

文件是计算机中数据持久化存储的表现形式python

1.2 文件操做基本语法

格式一(手工关闭格式):windows

1.打开文件: file = open("文件名","读/写模式")
2.操做文件:*
3.关闭文件:file.close()
复制代码

格式二(免关闭格式):缓存

1.打开文件: with open("文件名","读/写模式") as file:
2.操做文件:*
3.关闭文件(自动关闭文件)
复制代码

注意: 文件操做完毕后必须关闭,不然内存将长期保持对文件的链接状态, 形成内存溢出的现象发生。函数

1.3 文件读写模式

1.4 读文件操做

1.5 写文件操做

2. 文件路径

2.1 文件路径概念

文件在计算机存储器(例如硬盘)中保存的位置称为文件路径spa

2.2 文件路径的分类

相对路径:从程序运行所在的目录位置描述其它文件的保存路径设计

cc.txt 当前目录下的cc.txt
aa\\cc.txt 当前目录下的aa目录下的cc.txt
aa/cc.txt 当前目录下的aa目录下的cc.txt

绝对路径:从系统定义的存储位置描述文件的保存路径3d

D:\aa\bb\cc.txtcode

D:/aa/bb/cc.txt (推荐)cdn

3. 文件的相关操做

3.1 os模块相关操做

""" 案例:windows复制文件 分析: 1. 总体文件复制采用 rb wb模式进行 2. 复制文件须要更更名称,变化是有规则的 3. 1.txt -> 1 - 副本.txt """
file1 = open("d:/1.txt","rb")
file2 = open("d:/2.txt","wb")

while True:
    info = file1.read(1024)
    if len(info) == 0:
        break
    else:
        file2.write(info)
        
file1.close()
file2.close()

""" 案例:windows复制文件(版本二) 分析: 1. 总体文件复制采用 rb wb模式进行 2. 复制文件须要更更名称,变化是有规则的 3. 1.txt -> 1 - 副本.txt """
file1_name = "d:/1.txt"
idx = file1_name.rfind(".")
# print(file1_name[0:idx])
# print(file1_name[idx:])
file2_name = file1_name[0:idx]+ " - 副本" + file1_name[idx:]

file1 = open(file1_name,"rb")
file2 = open(file2_name,"wb")

while True:
    info = file1.read(1024)
    if len(info) == 0:
        break
    else:
        file2.write(info)

file1.close()
file2.close()

复制代码

4. 异常处理

4.1 异常概念

异常是程序执行过程当中出现的非正常流程现象。对象

异常是没法避免的,只能先预估出可能出现的异常现象,并提供对应的处理机制,在异常出现后保障程序不被中断执行。

4.2 异常处理基本语法

格式一(经常使用):

try:
    可能引起异常现象的代码
except:
    出现异常现象的处理代码
复制代码

格式二(不经常使用):

try:
    可能引起异常现象的代码
finally:
    try代码块结束后运行的代码
复制代码

格式三(完整格式):

try:			 
____可能引起异常现象的代码		  
except:
____出现异常现象的处理代码
else:
____未出现异常现象的处理代码
finally:
____try代码块结束后运行的代码
复制代码

各代码块功能与执行说明:

4.3 异常精细化处理

异常处理能够根据不一样种类的异常进行不一样的处理方案设计,使用异常名称来进行区分。标准格式以下:

except 异常类名1 as 变量名:
____出现异常现象的处理代码
except 异常类名2 as 变量名:
____出现异常现象的处理代码
except 异常类名3 as 变量名:
____出现异常现象的处理代码
except Exception as 变量名:
____出现异常现象的处理代码
复制代码

说明:

1.经过异常类名后面的变量名能够获取到具体异常信息

2.执行了某个except中的内容后,其余except中的内容将再也不执行

3.Exception类是全部异常类的父类,可以拦截全部的异常现象,一般设置成最后一级的捕获

4.4 异常对象主动抛出

异常现象可使用主动爬出的形式来构造,语法格式以下:

raise 异常类对象

注意:异常对象使用raise抛出时,一般是知足某中状况时抛出,不然将会出现程序执行到此处一定抛出异常。

4.5 异常处理传递

异常出现后若是没有被捕获处理,该异常将会继续向下传递,到下一次调用位置。

状况一:使用try嵌套继续处理

状况二:函数/方法间调用,在任意调用位置处理

最后调用处理

中间调用处理

5.自定义异常

5.1 自定义异常基本语法

class 自定义异常类名(Exception):
    pass
复制代码

5.2 自定义异常主动触发

raise 异常类对象
复制代码

6. 模块

6.1 模块概念

模块指包含了Python程序的源文件,每个独立的.py文件具备特定的功能,其功能能够被其它Python程序使用,该文件就构成了一个模块

模块的名称必须知足标识符命名规则

6.2 模块中的资源

模块中能够被外界使用的资源:类(定义)、函数、变量(全局)

6.3 模块资源导入

格式一(所有导入):

import 模块名
复制代码

模块资源使用的格式:

模块名.类名
模块名.函数名
模块名.变量名
复制代码

格式二(局部/所有导入):

from 模块名称 import 资源名称
from 模块名称 import 资源名称1,资源名称2
from 模块名称 import *
复制代码

模块资源使用格式:

类名(直接使用)
函数名(直接使用)
变量名(直接使用)
复制代码

注意:若是屡次导入模块中具备同名的资源,后导入的模块资源覆盖先导入的模块资源

6.4 局部导入资源访问控制

若是使用格式二中的所有资源导入方式

from 模块名称 import *
复制代码

能够在模块文件中第一行设置资源访问控制

__all__ = ["资源名称1","资源名称2"]
复制代码

说明:__all__列表中出现名称的资源能够在其它文件中使用

6.5 模块文件的执行代码处理

导入模块的同时会将原模块对应的.py文件进行执行,包括书写的运行代码,经过下列方式屏蔽原始模块中的运行代码:

if __name__ == "__main__":
    执行代码
复制代码

6.6 模块资源运行工做原理

模块资源导入时,解释器第一次地区原始资源文件,并生成缓存文件。再次使用时直接使用缓存文件,加速程序执行。

7. 包

7.1 包的概念

包就是项目结构中的文件夹/目录

7.2 包的做用

包用于将不一样的模块进行分类管理,包自己不具备具体的含义,仅用于文件分红管理

注意事项:放入包中的模块使用时须要字模块名前面添加包名,中间使用.分割

相关文章
相关标签/搜索