文件是计算机中数据持久化存储的表现形式python
格式一(手工关闭格式):windows
1.打开文件: file = open("文件名","读/写模式")
2.操做文件:*
3.关闭文件:file.close()
复制代码
格式二(免关闭格式):缓存
1.打开文件: with open("文件名","读/写模式") as file:
2.操做文件:*
3.关闭文件(自动关闭文件)
复制代码
注意: 文件操做完毕后必须关闭,不然内存将长期保持对文件的链接状态, 形成内存溢出的现象发生。函数
文件在计算机存储器(例如硬盘)中保存的位置称为文件路径spa
相对路径:从程序运行所在的目录位置描述其它文件的保存路径设计
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
""" 案例: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()
复制代码
异常是程序执行过程当中出现的非正常流程现象。对象
异常是没法避免的,只能先预估出可能出现的异常现象,并提供对应的处理机制,在异常出现后保障程序不被中断执行。
格式一(经常使用):
try:
可能引起异常现象的代码
except:
出现异常现象的处理代码
复制代码
try:
可能引起异常现象的代码
finally:
try代码块结束后运行的代码
复制代码
格式三(完整格式):
try:
____可能引起异常现象的代码
except:
____出现异常现象的处理代码
else:
____未出现异常现象的处理代码
finally:
____try代码块结束后运行的代码
复制代码
各代码块功能与执行说明:
异常处理能够根据不一样种类的异常进行不一样的处理方案设计,使用异常名称来进行区分。标准格式以下:
except 异常类名1 as 变量名:
____出现异常现象的处理代码
except 异常类名2 as 变量名:
____出现异常现象的处理代码
except 异常类名3 as 变量名:
____出现异常现象的处理代码
except Exception as 变量名:
____出现异常现象的处理代码
复制代码
1.经过异常类名后面的变量名能够获取到具体异常信息
3.Exception类是全部异常类的父类,可以拦截全部的异常现象,一般设置成最后一级的捕获
异常现象可使用主动爬出的形式来构造,语法格式以下:
raise 异常类对象
异常出现后若是没有被捕获处理,该异常将会继续向下传递,到下一次调用位置。
状况一:使用try嵌套继续处理
最后调用处理
中间调用处理
class 自定义异常类名(Exception):
pass
复制代码
raise 异常类对象
复制代码
模块指包含了Python程序的源文件,每个独立的.py文件具备特定的功能,其功能能够被其它Python程序使用,该文件就构成了一个模块
模块的名称必须知足标识符命名规则
模块中能够被外界使用的资源:类(定义)、函数、变量(全局)
格式一(所有导入):
import 模块名
复制代码
模块资源使用的格式:
模块名.类名
模块名.函数名
模块名.变量名
复制代码
格式二(局部/所有导入):
from 模块名称 import 资源名称
from 模块名称 import 资源名称1,资源名称2
from 模块名称 import *
复制代码
模块资源使用格式:
类名(直接使用)
函数名(直接使用)
变量名(直接使用)
复制代码
注意:若是屡次导入模块中具备同名的资源,后导入的模块资源覆盖先导入的模块资源
若是使用格式二中的所有资源导入方式
from 模块名称 import *
复制代码
能够在模块文件中第一行设置资源访问控制
__all__ = ["资源名称1","资源名称2"]
复制代码
导入模块的同时会将原模块对应的.py文件进行执行,包括书写的运行代码,经过下列方式屏蔽原始模块中的运行代码:
if __name__ == "__main__":
执行代码
复制代码
模块资源导入时,解释器第一次地区原始资源文件,并生成缓存文件。再次使用时直接使用缓存文件,加速程序执行。
包就是项目结构中的文件夹/目录
包用于将不一样的模块进行分类管理,包自己不具备具体的含义,仅用于文件分红管理
注意事项:放入包中的模块使用时须要字模块名前面添加包名,中间使用.分割