Python文件读取#write()方法之后不能read()出文件内容的解决办法

本文介绍了一种使用Python进行文件操作的新方法,通过使用文件指针函数`seek()`和`tell()`,可以在不关闭文件的情况下重新读取刚写入的内容。这种方法避免了常见的需要关闭并重新打开文件才能读取最新内容的问题。
摘要由CSDN通过智能技术生成

问题导入:

初学Python的文件操作的时候,我们会发现,我们一旦对文件进行了write()之后,再使用read()方法发现读取的内容是空.

最简单的解决方式就是close()文件,在进行read(),这样才能读取我们上一次所write()的内容

分析:

先来看一段代码:

f=open('2.txt','w+')
f.write('123')
f.read()

返回结果:



遇到这种情况,一般的初学者都是close()之后在进行读取就能读出上一次我们写入的123




现在我们有了更好的方法来去除这种麻烦的操作.

文件指针函数

file.seek() :

可以将文件游标移动到文件的任意位置

file.tell():

可以将文件指针的当前指向的位置读出


file.seek()方法标准格式是:seek(offset,whence=0)

offset:开始偏移量,也就是代表需要移动偏移的字节数。 

whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

whence常量:
os.SEEK_SET:  0 相对文件起始位置
os.SEEK_CUR:  1 相对文件的当前位置
os.SEEK_END:  2 相对文件的结束位置


注:下面代码whence参数我会英文,大家用1,2,3代表更加简便


接下来,我们用代码来是实现新的读取方法

>>> f.close()
>>> f=open('2.txt','w+')
>>> f.write('123')
>>> f.tell()  #当前文件指针的位置
3
>>> import os  #导入OS
>>> f.seek(-3,os.SEEK_CUR)#在文件指针当前的位置-3,就是移到开始位置,由此读出了刚刚写入在2.txt中的123的内容
>>> f.read()
'123'




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值