seek( ) 和 tell( )|学习笔记

简介: 快速学习 seek( ) 和 tell( )

开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理seek( ) 和 tell( )】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/601/detail/8773


seek( ) 和 tell( )


内容介绍:


一、二进制读文件

二、tell( )

三、seek( )

 

一、二进制读文件

demo.txt  中继续写为  Lorem 的内容,之前以文本形式读取,现在想要以二进制形式去读取

输入

with open('demo.txt' , 'rb') as file_obj:

print(file_obj.read( ) )

形式与之前文本去读的内容大致无区别,但是前面多了 b ,这表示现在的字符串是一个二进制字符串

输入:print(file_obj.read( 100 ) )

 

读取 100 个字符,但读的是二进制,所以实际上是 100 个字节,但是像英文,一个字符就是一个字节,所以似乎没有什么区别

 

二、tell( )

#tell ( )  方法用来查看当前读取的位置

print('当前读取到了-->' , file_obj.tell( ) )

print(file_obj.read( 100 ) )

print(file_obj.read( 30 ) )就是读取到130

 

三、seek( )

#seek( ) 可以修改当前读取的位置

file_obj.seek( )

先注释掉已读的:

with open('demo.txt' , 'rb') as file_obj:

#print(file_obj.read( 100 ) )

#print(file_obj.read( 30 ) )

#file_obj.seek( )

print('当前读取到了-->' , file_obj.tell( ) )

 

然后 file_obj.seek( 55 )

先执行:

这时再从 55 个开始读

print(file_obj.read(5))

可以连续改变,先不读,先看位置:

with open('demo.txt' , 'rb') as file_obj:

#print(file_obj.read( 100 ) )

#print(file_obj.read( 30 ) )

file_obj.seek( 55 )

file_obj.seek( 80 )

#print(file_obj.read(5))

print('当前读取到了-->' , file_obj.tell( ) )

 

可以看到改变了位置

注意:seek( ) 需要两个参数

第一个 是要切换到的位置

第二个 计算位置方式

可选值:

0 从头计算

1 从当前位置计算

2 从最后位置开始计算

比如 file_obj.seek( 80 ) 改为 file_obj.seek( 80,0 ), 还是 80

file_obj.seek( 55 )

file_obj.seek( 80,0 )

file_obj.seek( 70,1 )

表示从 80 开始,往后读 70 个,是 150

file_obj.seek( 55 )

file_obj.seek( 80,0 )

file_obj.seek( 70,1 )

file_obj.seek( 1,2 )

表示从最后位置开始往后走一个

那么能不能从 452 开始往后读内容呢?

print(file_obj.read( ))

没有内容,因为文本长度一共为 451,所以读不出来

改为 file_obj.seek( -1,2 ),表示从后计算减一个,读出来就是最后一个.

 

file_obj.seek( -10,2 ),就是最后十个

 

此外,seek( ) 也可以对文本文件使用,但是要注意文本字符到底占几个字节,并相应做一些判断

相关文章
HTTP协议的状态码有哪些常见的类型,分别代表什么意思?
HTTP状态码三数字分五类:1xx(信息),2xx(成功),3xx(重定向),4xx(客户端错误),5xx(服务器错误)。例如,200表示请求成功,301表示永久重定向,404表示未找到,500表示服务器内部错误。这些代码帮助诊断网络问题。
497 2
|
2月前
|
数据安全/隐私保护 计算机视觉 Python
一键生成眨眼照片app,一键生成眨眼照片,秒解人脸识别软件
这段代码使用了dlib的人脸检测和关键点定位功能来识别眼睛区域,然后通过图像处理技术模拟眨眼效果
|
2月前
|
数据采集 JSON 数据安全/隐私保护
小红书评论采集工具,小红书自动采集软件,Uid作品笔记用户提取
这个工具包含三个主要功能:1) 获取用户基本信息 2) 获取用户发布的笔记 3) 获取笔记下的评论
|
存储 移动开发 程序员
Docker部署Dillinger个人文本编辑器
【7月更文挑战第6天】Docker部署Dillinger个人文本编辑器
260 2
|
设计模式 人工智能 算法
策略模式的应用场景有哪些?
【7月更文挑战第2天】策略模式的应用场景有哪些?
597 1
|
IDE Java Shell
Java的开发环境的搭建
Java的开发环境的搭建
237 4
|
供应链 监控 安全
物联网(IoT)的安全性挑战及其应对策略
【5月更文挑战第9天】物联网(IoT)的快速发展带来设备多样性和安全漏洞,易受DDoS攻击、数据隐私泄露及供应链威胁。为应对挑战,需强化设备安全设计,建立认证和授权机制,加密数据传输,实施安全事件监控及加强供应链管理,以确保IoT的健康发展。
|
前端开发 搜索推荐 安全
云LIS系统概述 医院云HIS系统源码 开箱即用
云LIS(云实验室信息管理系统)是一种结合了计算机网络化信息系统的技术,它无缝嵌入到云HIS(医院信息系统)中,用于连接各种检验分析仪器和管理现代化实验室流程。云LIS系统不仅提高了检验科的工作效率,降低了工作强度,而且缩短了病人等待化验报告的时间,减少了交叉污染的机会。此外,云LIS系统还集成了前处理、检验、报告、质控、统计分析等功能,支持个性化报告出具和服务端单独队列生成报告,能在几分钟内批量生成报告,从而提高了实验室的工作效率和质量。
300 3
|
存储 安全 前端开发
SAAS解决方案深度剖析:适用场景、挑战与成本评估指南
SAAS解决方案深度剖析:适用场景、挑战与成本评估指南
526 0
|
NoSQL 关系型数据库 MySQL
CTFShow-SSRF(writeup)
CTFShow-SSRF(writeup)
346 0
CTFShow-SSRF(writeup)