Skip to main content
 首页 » 编程设计

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

2025年05月04日14bluestorm

我是 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()