Python中文件定位的学习

本文详细介绍了文件操作中的关键方法,如使用tell()确定当前文件指针的位置、利用truncate()对文件进行截断处理以及通过seek()实现文件指针的精确移动等。文章通过具体示例解释了这些方法的应用场景及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tell()

文件定位,指的是当前文件指针读取到的位置,光标位置。在读写文件的过程中,如果想知道当前的位置,可以使用tell( )来获取。

tell(  ):查看读取的位置在哪里. //返回指针当前所在的位置

with open('Test.txt','r') as f:
    print(f.read(4))
    print(f.tell())
    print(f.read(5))
    print(f.tell())

#对于中文来讲,每次读取到的一个汉字实际上占用了三个字节
#换行符\n占用了两个字节

测试文本 ' Test.txt ' 如下所示:

 运行结果:

换行符\n占了两个字节的长度

 

truncate:可以对源文件进行截取操作

 

fobj_Before = open('Test.txt','r')
print(fobj_Before.read())
fobj_Before.close()
print('截取之后的数据......')

fobj_After=open('Test.txt','r+')
fobj_After.truncate(15)
print(fobj_After.read())
fobj_After.close()

 在操作文件的过程中,需要定位到其他位置进行操作,可以用seek( )

seek(offset,from)有两个参数 offset:偏移量单位字节,负数是往回偏移,正数是往前偏移

0表示文件开头,1表示当前位置,2表示文件末尾

用'r'这种模式打开文件,在文本文件中,没有使用二进制的选项打开文件,只允许从文件的开头计算位置,
从文件尾部计算或者其他位置计算就会发生异常

with open('Test.txt','rb') as f:
    data=f.read(2)
    print(data.decode(encoding='utf-8'))
    f.seek(-2,1) # 相当于光标回到了0的位置
    print(f.read(4).decode('utf-8'))
    f.seek(-6,2) # 光标放到末尾,向左移动6个字符
    print(f.read(2).decode('utf-8'))
    print(f.read(4).decode('utf-8'))
    f.seek(4,0) #光标从最初始位置移动, 往右边移动4个字符
    print(f.read(6).decode(encoding='utf-8'))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值