我是 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(),此指针都会移动:
.read()读取直到文件末尾并将指针移动到末尾(因此进一步调用任何读取都不会给出任何结果).readline()读取直到看到换行符并在它之后设置指针.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()
