首页
学习
活动
专区
工具
TVP
发布

Python学习-基础篇(4)

文件操作

文件对象名=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 最后一个是可选的(实践中很少使用)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190124G15BBH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券