python中的文件读写(open()函数、with open('file_directory','r') as f:、read()函数等)
python中也有文件读写,通过调用内置的读写函数。可以完成文件的打开/关闭、读、写入、追加等功能。
open()函数
open()函数为python中的打开文件函数,使用方式为:
f = open("[文件绝对路径]",'[文件使用模式') 以 f = open('/home/user/lina/info_lina.txt','r')为例,我们在linux环境中以r(只读模式)打开/home/user/lina/info_lina.txt的文件,此处路径也可以为相对路径,相对于本程序的路径。
>>> f = open('/home/user/lina/info_lina.txt','r')
>>> print(f.read())
---- info of lina ----
Name : lina
age : 23
f.close() #在使用open函数打开文件时,使用完后记得关闭
with open() as f :
使用with open() as f : 相对于直接使用open()打开文件,会好用很多,你不用担心忘记调用f.close()关闭文件,会自动给你关闭。使用模式为:
with open('文件路径','使用模式') as f : 以 with open('/home/user/lina/info_lina.txt','w') as f : 为例,在linux环境下以w(读写模式)打开文件,该模式下如果文件存在就直接打开,如果不存在就创建文件。
with还可以同时打开多个文件,with open('file1') as obj1, open('file2') as obj2:
>>> with open('/home/user/lina/info_lina.txt','w') as f:
>>> f.write('\nJob : model')
其他的打开模式
打开方式 | 描述 |
---|---|
r | 只读模式,文件的指针将会放在文件的开头,为默认模式。只能用read()函数读 |
rb | 同上,b表示以二进制格式打开 |
r+ | 读写模式,打开一个文件可读可写。可用read()函数读,也可用write()写入 |
rb+ | 二进制模式打开文件,读写模式 |
w | 打开一个文件只用于写入,如果文件存在就覆盖,不存在就创建新文件。同理以上w+ wb+ |
a | 打开一个文件往该文件的最后追加内容,所以指针在文件的末尾,同理当文件不存在时创建一个文件。同理a+ ab+ |
read()、read(size)、readline()、readlines()的区别和使用
我们都知道read()函数是打开文件后用来读取文件内容的。但是必须要注意的是read()函数会一次将文件内容全部读取到内存如果文件太大,你的内存就爆了!
- 所以read()函数一般用与读小文件。
- read(size)可以读取指定size字节的内容,常见在socket网络编程中,一个包大小为8192(即8K)当你读取内容传输时,最好小于这个大小,当然你可以重复调用read(size)读取完文件。
- readline()每次会读取一行数据,同样可以循环调用该函数,直至读取完文件。
- readlines()会一次性把文件读完,返回一个列表,每一行为列表中的一个元素,
for line in f.readlines()
可循环列表。同read()使用时注意文件大小。
强烈建议:读取文件时使用for line in f:
这样的循环去读取,内容会一条一条的被读取到内存。
>>> for line in f:
... print(line)
人生还有意义。那一定是还在找存在的理由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?