a = []
with open(file_path,'rU') as fp:
for i,line in enumerate(fp):
if "X" in line:
#print (i, line)
for line in fp:
a.append(line.split(' '))
print(a)
class FlipFlop:
def __init__(self, start_state, func):
self.call=func
self.state = start_state
def __call__(self, st):
if self.call(st): self.state=not self.state
return self.state
with open(fn) as f_in:
ff=FlipFlop(False, lambda s: 'X' in s)
x_and_after=[(i, line.strip()) for i, line in enumerate(f_in) if ff(line)]
a = []
with open(file_path,'rU') as fp:
for i, line in enumerate(fp):
if 'X' in line:
print('FOUND X [{}]: {}'.format(i, line))
a.append(line.split(' '))
for j, line in enumerate(fp, start=i+1):
print('FOUND after X [{}]: {}'.format(j, line))
a.append(line.split(' '))
print(a)
a = []
after_x = False
with open(file_path,'rU') as fp:
for i,line in enumerate(fp):
after_x = after_x or "X" in line
if after_x:
a.append(line.split(' '))
print(a)
给出:
您可以使用itertools dropwhile:
结果:
如果您想在整个文件上使用
enumerate
,您可以有一个对象在测试后保持True
或False
状态。通常称为触发器,用于查找文件中的标记,而只逐行读取文件:结果:
找到“X”后,打开文件上的第二个循环在行上拾取。您可以添加“标志”并删除内部循环:
相关问题 更多 >
编程相关推荐