首页 > 解决方案 > f.seek() 在 python 中读取额外的换行符或空格

问题描述

with open("text.txt", "r") as f:
    print(f.tell())     # output : 0
    print(f.read(1))    # output : A

    f.seek(1)
    print(f.read(1))    # output : B

    f.seek(5)  
    print(f.read(1))    # output : D

    f.seek(14)
    print(f.read(1))    # output :  ?????

    f.seek(15)
    print(f.read(1))    # output : J

文本.txt

ABC
DEF
GHI
JKL

输出

0
A
B
D


J

我无法理解f.read(1)for 的输出f.seek(14)f.seek(15)因为我期待KL

它似乎在一个之上,在and之间生成了\n额外的\nor ,而在and之间没有生成spaceFGIJCD

那么为什么输出是这样的,发生了什么?

标签: python

解决方案


你注意到\n在你的每个之前都有一个空格text.txt吗?如果删除空格,结果将是

0
A
B
E
L


已编辑:您可能还想检查换行符是\r\n(在 Windows 中)还是\n. 如果换行符是\r\n,您也会得到错误的结果。


推荐阅读