gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:56:43 26 4
gpt4 key购买 nike

我正在尝试将文件的一部分读入字节数组,但没有成功。我会多用一双眼睛,这可能是显而易见的事情。

示例文件段:

...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 上

最佳答案

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

这可以解释您的症状,因为您实际上正在阅读 '\n''\r\nf''e\r\nf' 并在每种情况下删除任何 '\r'

关于python - file.seek() 和 read() 相对于当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27208524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com