在 python 中使用 readline() 时是否可以指定读取哪一行?当我运行以下代码时,我得到第 1、2、3 行,但我想阅读第 2、6、10 行
def print_a_line(line, f):
print f.readline(line)
current_file = open("file.txt")
for i in range(1, 12):
if(i%4==2):
print_a_line(i, current_file)
最佳答案
不,你不能那样使用readline。相反,跳过不需要的行。您必须通读整个文件,因为您无法提前知道从何处寻求读取特定行(除非换行符出现在某个常规偏移量中)。您可以使用 enumerate 来确定您在哪一行,因此您只需读取文件一次,并且可以在您不关心的位置之后停止。
with open('my_file') as f:
for i, line in enumerate(f, start=1):
if i > 12:
break
if i % 4 == 0:
print(i, line)
如果您知道每一行都有特定的字节长度,您可以查找给定行的特定位置,而不是遍历这些行。
line_len = 20 # bytes
with open('my_file', 'rb') as f:
for i in range(0, 13, 4):
f.seek(i * line_len)
print(f.read(line_len).decode())
关于python - 使用 python 中的 readline() 读取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721089/