文件操作指南

文件是什么?

变量把数据保存到内存中,如果程序重启/主机重启,内存中的数据就会丢失,要像让数据能被持久化存储,就就可以把数据存储在硬盘中,也就是 文件 中保存

文件中常见的问价类型就是

文本文件(txt)

可执行文件(exe,dll)

图片文件(jpg,gif)

视屏文件(mp4,mov)

office 文件(.ppt,docx)

文件路径:绝对路径,相对路径

文件操作

要使用文件,主要通过文件来保存数据,并并且在后续把保存的数据读取出来,但是要想读写,需要先"打开文件",读写完毕之后还要"关闭文件"

1.打开文件

使用内置函数 open 打开一个文件

复制代码
f = open('d:/test.txt','r')

第一个参数是字符串,表示要打开的文件路径

第二个参数字符串,表示打开的方式,其中 r 表示按照 读 的方式打开, w 表示按照写的方式打开, a 表示追加写方式打开

如果打开文件成功,返回一个文件对象,后续的读写文件操作都是围绕这个文件对象展开

如果打开文件失败就会抛出异常

关闭文件

使用 close 方法关闭已经打开的文件

复制代码
f.close()

一个程序能同时打开的文件个数是存在上限的

复制代码
flist = []
count = 0
while True:
    f = open("d:/test.txt", 'r')
    flist.append(f)
    count += 1
    print(f'count:{count}')

写文件

文件打开之后就可以写文件

复制代码
f = open('d:/test.txt', 'w')
f.write('hello world')
f.close()

使用 'w' 一旦打开文件成功,就会清空文件原有的内容

使用 'a' 实现"追加写",此时原有的文件内容是不变,写入的内容会存在于文件内容的末尾

复制代码
f = open('d:/test.txt', 'w')
f.write('hello world')
f.close()

f = open('d:/test.txt', 'a')
f.write('hello world')
f.close()

读文件

读文件内容需要使用'r'的方式打开文件

使用 read 方法完成读取的操作,参数代表"读取几个字符"

复制代码
f = open('d:/test.txt', 'r')
result = f.read(2)
print(result)
f.close()

f = open('d:/test.txt', 'r')
for line in f:
    print(line)
f.close()


f = open('d:/test.txt', 'r')
lines = f.readlines()
print(lines)
f.close()

要确保编码格式的一致性需要给 open 方法加上encoding

复制代码
f = open('d:/test.txt', 'r', encoding='utf-8')

使用上下文管理器

打开问价之后,是容易忘记关闭, Python 提供了 上下文管理器,来帮助程序员自动关闭文件

使用 with 语句打开文件

当with内部的代码块执行完毕之后,就会自动调用关闭方法

复制代码
with open('d:/test.txt', 'w', encoding='utf-8') as f:
    lines = f.readlines()
    print(lines)
相关推荐
wj3055853789 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver9 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq10 小时前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU10 小时前
Petalinux新建自动脚本启动
linux
charlie11451419110 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记11 小时前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
于小猿Sup11 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y11 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
不仙52013 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
1892280486113 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存