天数:第七天
时间:2023年12月21日
内容:
- 文件读写
- 介绍:文件是一个保存信息的载体,可以保证打开来直接使用,或者继续编写上次已保存但是未编好的内容(省时又省力)
- 流程:
- 文件打开和关闭
- 例子1:(生活中,写个简历)1. 打开或新建一个word文件。 2.写入简历信息。 3.保存文件内容。 4.关闭word文件
- 例子2:(python中,同样例子) 1.打开或新建一个文件。 2. 读/写 数据。 3. 关闭文件
- 文件打开和关闭
- 文件读/写(I/O流,全名是:inputstream 输入流/Outputstream输出流)
- I :将磁盘的文件读入到程序中,进行处理。
- O:将写好的程序写到磁盘(永久的:永久状态的数据【U盘,硬盘,存储卡】) 。
- tips:我们编的python代码都是在内存中执行的(临时的:程序关闭会清空内存),那么这个文件读写过程是:磁盘和内存相互交换的一个过程)
- 最常见的场景使用:
- 文件上传/下载
- 数据库操作(是以文件形式保存数据,一般是查询/修改操作)
- 文件处理
- 文件分类不同,操作不同
- 文本文件:是个字符型文件,只保存字符串。(例:json,txt,css等配置文件)
- 二进制文件:是个字节型文件,保存任何形式的多媒体数据(例:图片,音频,视频等)
- 读写文件
- 读文件
- 步骤:
- 1.打开文件: 文件对象 = open(文件路径,访问模式) *1. 访问模式是: 读(“r”)或者写(“w”) 记得路径前面加个 r :可以解析成转译字符
- 2.处理文件: 读文件(read)/写文件(write)
- 3. 关闭文件: 文件对象 . close()
- 练习:
-
读文件 f = r"C:\Users\gw\OneDrive\桌面\python\xxxxxx\file\再别康桥.txt" file = open(f,"r") data = file.read() file.close() print(data) print(type(data))
- 步骤:
- 写文件
- 特性:
- 写文件的时候,文件是否存在没关系。如果不存在,则创建新文件;如果存在,则覆盖写入(但当访问模式改为append时,则会继续文件内容后面编写(“a"))
- 文件路径必须存在
- 步骤与读文件几乎相同,只不过更改了访问模式(“w", "a")
- 练习:
-
#写文件 context = "创建第一条内容!!!!" file = open(r"C:\Users\gw\OneDrive\桌面\python\内容展示.txt", "w") data = file.write(context) file.close() print(data) print(type(data))
- 特性:
- 二进制读写文件
- 与文本文件读写几乎相同,只不过更改了访问模式("rb", "wb", "ab")
- 读取原因:因为不管是读取文件还是写入文件,得出的结果都是二进制,是一个原封不动的内容,需要解码处理才能看见内容,当然这并不是我们打代码的人要做的事情。我们在二进制读取文件时,目的是复制该文件,并且移动到想要的文件路径上。
- 练习:
-
二进制读取和写入 f = r"C:\Users\gw\OneDrive\桌面\python\xxxxxx\file\cat.jpg" file = open(f,"rb") data = file.read() #现在已经把图片读取到了程序中,下一步是把他移动到新路径中 file.close() fileNew = open(r"C:\Users\gw\OneDrive\桌面\python\cat11.jpg","wb") newData = fileNew.write(data) fileNew.close() print(newData) print(type(newData))
- 另外一种读取方法 with open()与上面的不同 1. 省略每次的 关闭操作 .close() 2. 操作更简单(因为上面普通读写在执行(复杂-粘贴) 操作时,要2次打开和关闭才能完成,但with open()方法就不用,很清晰,代码也一目了然)
- 练习:
-
#with open()练习 with open(r"C:\Users\gw\OneDrive\桌面\python\xxxxxx\file\清晨.mp3","rb") as file1, open(r"C:\Users\gw\OneDrive\桌面\python\复制的歌-清晨.mp3","wb") as file2: data = file1.read() newData = file2.write(data) print(newData)
- 读文件
- 模块