文件操作
文件对象名=open(文件名[,打开方式[,缓冲区]])
文件打开方式:r读取;w写入;a追加;b二进制模式;+读、写模式 (后两个都可以去其他模式组合使用)
缓冲区 指定了读写文件的缓存模式 0表示不缓存 1表示缓存 大于1表示缓存区大小默认值是缓存模式
用只读的方式 打开一个不存在的文件是会报错的;但是我们用写的方式打开它会为我们创建这个文件;然后我们.write()输入我们的信息;.close()关闭文件,打开记事本 即可看到刚刚输入的内容了!
当然我们可以用函数来查看
修改下文件内容 使得我们能够出现一些逐行读取的效果。
Readline()读取下一行的内容 readlines()读取剩余全部的内容 在这里\n代表换行符也就是回车
还有几种文件对象的属性,mode回显文件打开的方式;closed判断文件是否关闭 如果未关闭 返回false ;name回显文件的名字
文本文件操作
用w写入的方式打开文件 如果文件不存在 则创建文件 如果文件存在 则可能覆盖文件
第二种写入多行的方式
追加模式 会保留原有的内容在文件尾部增加信息
文件指针
指向文件第一个字符;5指向文件第6个字符;6继续往后指7个字符;seek(0)回到初始点;5指向文件第6个字符
显示文本文件内容
其他一些二进制文件操作 在这里不做深入
os与os.path模块
os模块除了提供了使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件级操作的方法;os.path模块提供了大量用于路径判断、切分、连接以及文件级遍历的方法
放一些 常用的方法
检查文件是否存在;获取文件大小;后面三串数字都是从1970-1-1:00开始计算的,分别是文件访问、文件建立、文件修改
具体方法 使用dir()查看 不做详解了
shutil模块
Copyfile()复制文件
压缩文件 将目录1内的文件 压缩为目录1.zip
解压文件
目录操作
查看当前工作目录 并且在当前的工作目录内创建目录
Chdir()改变工作的目录;mkdir()创建目录;rmdir()删除目录;listdir('.')查看当前目录下的文件
批量查看指定目录下文件?
求文件md5
附上个 实用的语法 查指定的库中是否有这个函数 wait函数 在win中不存在 但是存在于linux中
python3 -c"import os;print('wait' in dir(os));"
异常处理
简单异常实用
语法:
try:
#运行别的代码
except: #发生了任意的异常都会执行这个语句块中的内容
#如果在try部份引发了'name'异常
except as : #只有发生了特定类型的异常才会执行这个语句块的内容 问题的附加信息赋值给了 这个值 具体使用方式都会写在下面代码中
#如果引发了'name'异常,获得附加的数据
else:
#如果没有异常发生
简单解释下 首先执行try语句,打开文件 并写入信息。如果没有异常就忽略except语句,继续回到try的代码执行,如果出现异常就先进入异常的处理语句,然后再进行后面语句的执行。注意了,一个try可包含多个except语句,分别用来处理不同特定的异常,最多只有一个分支会执行!
可见我们执行成功,那么我们将文件权限变成只读呢? 当然也就执行失败了
看到上面这个 IOError 我就在补充下 常见的异常
AttributeError试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
IOError输入/输出异常;基本上是无法打开文件
ImportError无法引入模块或包;基本上是路径问题或名称错误
IndentationError语法错误(的子类) ;代码没有正确对齐
IndexError下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterruptCtrl+C被按下
NameError 尝试访问一个没有申明的变量
SyntaxErrorPython代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
ValueError传入一个调用者不期望的值,即使值的类型是正确的
上面的代码还是可以再继续修改学习 如何用到上面语法中介绍的as?
通过修改 可以发现 我们没有访问权限了
raise语句 抛出异常
Raise[异常[,参数[,回溯]]] 语句中exception是异常的类型 比如nameerror 参数是一个异常参数值 该参数值是可选的 如果不选择 异常参数是none 最后一个是可选的(实践中很少使用)
领取专属 10元无门槛券
私享最新 技术干货