文件
在开发中要对数据持久化的操作,我们对数据实现持久化操作的方式就是将它保存在文件中。关于文件我们要了解到文件系统的知识。
1. 文件系统
在存储设备上组织文件的方法,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。在要使用文件时,要出对应的文件路径,要不然访问不到文件。
2.python文件操作
open操作
通过内置函数 open 操作,操作模式,‘r’:读取(默认),‘w’: 写入(会先截断之前的内容)。 ‘x’:写入,如果文件已经存在会产生异常。 ‘a‘ 追加,将内容写入到已有文件的末尾,’b‘:二进制模式。 ’t’ :文本模式(默认)。 ‘+’:更新,既读也写。
- 读写文本文件
open(‘xxx.txt’,‘r’,encoding=‘utf-8’) 表示读取xxx.txt文件(可以用相对路径,也可以用绝对路径),r 读的模式 encoding为utf-8编码,这里报错了,在开发中,我们要保证代码有一定的容错性,我们可以利用python的异常机制对异常代码进行适当处理。hou
在python章,我们可以将那些在运行时出现状况的代码放在try中(和java中try…catch差不对)。在try后的代码块中跟上一个或多个expect来捕获可能出现的异常状况,就如同上图代码中的一样。finally块就是用来释放外部资源的,不管包不报错,都会被执行。不仅时finally可以用来关闭对象释放资源,用上下文语法with也可以。
def main():
try:
with open('xxx.txt','r',encoding='utf-8') as file:
prin(file.read())
except FileNotFoundError:
print('无法打开指定的文件!')
except LookupError:
print('指定了未知的编码!')
except UnicodeDecodeError:
print('读取文件时解码错误!')
if __name__=='__main__':
main()
这就是上下文语句,不用finally来释放资源。在with关键字指定文件对象的上下文环境并在离开上下文环境时自动释放资源。
除了read方法读取文件,还可用for in循环逐行读取,或用readlines方法将文件读取到列表容器中,
写入文件就将’r’换成w,用.write方法写入,会截断之前的内容,就把之前的内容替换了,下图代码就将我xxx.txt文件中的替换了。
- 读写二进制文件
模仿文本文件,下面代码可以实现图片复制。