相对于当前位置的file.seek()和read()

1osmi

我正在尝试将文件的一部分读取到字节数组中,但没有成功。我要多留一双眼睛,这可能是显而易见的。

示例文件段:

...line one\nline two\nline three\nfourth line\n
                                   ^        
                                   |___ fp.tell() 

之后fp.seek(-1,os.SEEK_CUR)print fp.read(1)输出是(按预期)\n

另一方面fp.seek(-2,os.SEEK_CUR)如果我执行,而不是预期的e\n输出是\nf

之后,我尝试了fp.seek(-3,os.SEEK_CUR)print fp.read(3),输出为e\nf

换句话说,无论指针是严格的负向运动,字节都是“双向”读取的(从左到右)。我确定我在这里遗漏了一些东西。有什么提示吗?

编辑:它在Windows上

扬·韦尼尔(Yann Vernier)

您是否在Windows上以文本模式读取文件(默认情况下,除非在模式字符串中用b调用open()否则默认情况下)?如果是这样,它可能会有'\r\n'换行符,该换行符是两个字节大,但是在您阅读时'\n'通过剥离the来转换为换行符'\r'来自help(file.seek):“如果文件以文本模式打开,则只有tell()返回的偏移量是合法的。”

这将解释您的症状,就像您实际上正在阅读一样'\n''\r\nf'并且在每种情况下都应清除'e\r\nf'所有症状'\r'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取相对于精灵的位置和旋转的位置偏移

EXT JS:CSS和相对于父容器的位置

python seek() 和 read() 以不同的方式计算文件位置

计算相对于日出和日落时间的当前时间?

CSS:如何获得相对于屏幕宽度的位置和大小?

CSS相对于父元素和页面/视口的位置

相对于方向的统一角度和位置

相对于动态调整大小和位置的先前图像放置图像

如何在保持纵横比和相对于其他 div 的位置的同时垂直缩小 div?

axis_divider主机轴的inset_axis的纵横比(相对于大小和位置)

为什么调用和跳转指令相对于下一条指令而不是当前指令使用位移?

每次相对于其当前位置平移元素吗?

如何获取元素相对于窗口的当前位置

在 Powershell 中相对于当前位置移动项目

相对于当前屏幕位置的 CSS 动画

如何实现响应式设计,在缩放时保持按钮和填充物相对于背景图像的位置?

相对于画布对齐和分布图层

测量设备相对于目标的俯仰和横摆

PHP和路径-相对于文件且不包含代码

相对于 R 等效时的 Python Group By 和 Case

如何获得相对于当前文本视图开始位置的滚动位置偏移量?

Gulp编译scss文件并将css和css.map文件移动到相对于scss文件位置的父文件夹

相对于滚动区域的位置

元素相对于视口的位置

相对于JFrame的光标位置 - 的Java

查找元素相对于文档的位置

相对于父级底部的位置

相对于父视图的位置

相对于底部 + 容器高度的位置