11.文件操作
文件
在计算机中文件是以二进制方式保存在磁盘上的
文本文件
可以使用文本编辑器查看
本质上还是二进制文件
例如python的源程序
二进制文件
保存的内容不是给人直接阅读的,二十提供给其他软件使用的
例如图片文件、音频文件、视频文件等
二进制文件不能使用文本编辑器查看
文件的基本操作
在计算机中操作文件等套路非常固定,一共包含三个步骤:
1.打开文件
2.读、写文件
3.关闭文件
操作文件的函数/方法
在python中操作文件需要记住1个函数和3个方法
1. open:打开文件、并且返回文件操作对象
2. read:将文件内入读取到内存
3. write:将指导内容写入文件
4. close:关闭文件
open函数负责打开文件,并且返回文件对象
read/write/close三哥方法都需要通过文件对象来调用
read方法 -- 读取文件
open函数的第一个参数是要打开的文件的路径(文件名区分大小写)
如果文件存在,返回文件操作对象
如果文件不存在,会抛出异常
read方法可以一次性读入并返回文件的所有内容
close方法负责关闭文
如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问
方法执行后,会把文件指针移动到文件的末尾
由于忘记关闭文件会造成系统消耗,在开发中,通常会先编写打开和关闭,再编写中间针对文件的操作
文件指针
文件指针标记从哪个位置开始读区数据
第一次打开文件时,通常文件指针会指向文件开始的位置
当执行了read方法后,文件指针会移动到读取内容的末尾
默认情况下会移动到文件末尾
如果执行了一次read方法,读取了所有内容,拿钱吗再次调用read方法,就不能获取内容
因为第一次读取之后,文件指针移动到了文件末尾,再次调用不会读取到任何内容
打开文件的方式
open函数默认以只读方式打开文件,并且返回文件对象
open函数的第二个参数,是文件的访问方式
语法格式: file = open('文件名','访问方式')
访问方式:
r : 以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式,如果文件不存在,抛出异常
w: 以只写的方式打开文件,如果文件存在会被覆盖,如果文件不存在,会创建新文件
a : 以追加的方式打开文件,如果文件已存在,文件指针将会放在文件的结尾,如果文件不存在,创建新文件进行写入
r+ : 以读写的方式打开文件,文件指针 将会放在文件的开头,如果文件不存在,抛出异常
w+: 以读写方式打开文件,如果文件存在会覆盖,如果文件不存在,创建新文件
a+: 以读写方式打开文件,如果文件已存在,文件指针将会放在文件的结尾,如果文件不存在,创建新文件进行写入
频繁移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件
readline方法
read方法默认会把文件的所有内容一次读取到内存
如果文件太大,对内存的占用会非常严重
readline方法可以一次只读取一行内容
方法执行以后,会把文件指针移动到一行,准备再次读取
对于一些大文件一次性读取会耗费大量资源,可以使用readline方法逐行读取
小文件复制
打开一个已有文件,读取完整内容,并写入到另一个文件
大文件复制
打开一个已有文件,逐行读取内容,并顺序写入到目标文件
文件/目录常用管理操作
在终端/文件浏览器中可以执行常规的文件/目录管理操作
例如:
创建、重命名、删除、改变路径、查看目录内容......等等
在python中,如果希望可以通过实现上述功能,需要导入os模块
文件操作
目录操作
文件或者目录操作都支持相对路径和绝对路径
风月都好看,人间也浪漫.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现