") a=open(f) print a.read() pr-6ren">
gpt4 book ai didi

python - 对 Python 中的 readline() 返回感到困惑

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:13 25 4
gpt4 key购买 nike

我是 python 初学者。但是,当我尝试使用 readline() 方法时遇到了一些问题。

f=raw_input("filename> ")
a=open(f)
print a.read()
print a.readline()
print a.readline()
print a.readline()

我的txt文件是

aaaaaaaaa
bbbbbbbbb
ccccccccc

但是,当我尝试在 Mac 终端上运行它时,我得到了这个:

aaaaaaaaa
bbbbbbbbb
ccccccccc

似乎 readline() 根本不起作用。但是当我禁用 print a.read() 时,readline() 会恢复工作。

这让我很困惑。有什么解决方案可以同时使用 read() 和 readline() 吗?

最佳答案

当您打开一个文件时,您会得到一个指向文件某个位置的指针(默认情况下:开头)。现在,无论何时运行 .read().readline(),此指针都会移动:

  1. .read() 读取直到文件末尾并将指针移动到末尾(因此进一步调用任何读取都不会给出任何结果)
  2. .readline() 读取直到看到换行符并在它之后设置指针
  3. .read(X) 读取 X 个字节并将指针设置在 CURRENT_LOCATION + X(或末尾)

如果您愿意,可以通过发出 a.seek(X) 调用手动移动该指针,其中 X 是文件中的一个位置(视为字节数组) .例如,这应该为您提供所需的输出:

print a.read()
a.seek(0)
print a.readline()
print a.readline()
print a.readline()

关于python - 对 Python 中的 readline() 返回感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39771366/

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