Python 3.x receiursivley读取文件的行
我想在每次运行程序时读取文件的特定行 假设一个文本文件Python 3.x receiursivley读取文件的行,python-3.x,Python 3.x,我想在每次运行程序时读取文件的特定行 假设一个文本文件 line 1 line 2 line 3 line 4 line 5 line 6 我希望每次运行文件时,都能读取文件的每三行 with open("test.txt", "r+") as f: for line in f: line = f.readline() #do something with line 上面的代
line 1
line 2
line 3
line 4
line 5
line 6
我希望每次运行文件时,都能读取文件的每三行
with open("test.txt", "r+") as f:
for line in f:
line = f.readline()
#do something with line
上面的代码只读取第一行,或者它只选择要读取的行,我希望是具体的。每三行。
Enumerate确实允许我阅读特定的行,但随后的问题是逐个评估它们。
我该怎么做?以下是一个示例:
def _read(file, step, start=0):
with open(file, "r") as f:
for line in f.readlines()[start::step]:
print(line.strip())
_read('test.txt', 3, 2)
输出:
line 3
line 6
line 9
line 3
line 6
line 9
No more lines
None
No more lines
None
下面是类
:
class Reader:
def __init__(self, file_name, mode='r', start=0, step=1):
self.file = open(file_name, mode)
self.lines = self.file.readlines()[start::step]
self.file.close()
def get_line(self):
if self.lines:
return self.lines.pop(0).strip()
else:
print('No more lines')
r = Reader('test.txt', start=2, step=3)
print(r.get_line())
print(r.get_line())
print(r.get_line())
print(r.get_line())
print(r.get_line())
输出:
line 3
line 6
line 9
line 3
line 6
line 9
No more lines
None
No more lines
None
对f.read().split('\n')中的行使用
:
,readline是一个生成器此读取整个文件您在读取每三行或处理每一行时是否有问题?我可以读取每三行并打印它。但我不只是想把它打印出来,我也想对它进行评估,比如说,也许从这行中找到某个单词。而这个,我想把每一行都打印出来谢谢。也可以单独评估阅读的每一行吗?@Thatile“评估每一行”是什么意思?该示例分别在每条线路上运行。