Tôi đang lặp qua một tập tin và nếu tôi tìm thấy một cái gì đó, muốn đọc trước một số dòng tìm kiếm một cái gì đó trước khi trở về kiểm soát vòng lặp chính. Tuy nhiên, tôi muốn trở lại kiểm soát tại thời điểm mà tôi ngừng nhìn về phía trước.Làm thế nào để đọc trước một tệp khi lặp qua nó bằng Python?
Mẫu mã:
for line in file:
line = line.strip()
llist = line.split()
if llist[0] == 'NUMS':
# some loop to read ahead and print nums on their own line
# until it finds END, then return control to the main for
# loop at the point where it stopped looking ahead.
đầu vào mẫu:
NUMS
1
2
3
4
5
END
SOME
MORE
STUFF
NUMS
6
7
8
9
0
END
đầu ra mong muốn:
1 2 3 4 5
6 7 8 9 0
Tôi khá mới tại Python, vì vậy nếu có một cách tốt hơn để làm ngoài việc sử dụng vòng lặp để nhìn về phía trước, tôi rất vui khi thấy nó.
Vì vậy, bên trong 'cho dòng trong tệp:' bắt đầu lấy các dòng bên ngoài dòng bên trái? Tôi đã nghĩ rằng nó sẽ bắt đầu lại từ đầu tập tin. – astay13
@astay: Không liên quan gì đến bên trong/bên ngoài. Có chính xác một trình lặp trong mã này. 'cho điều trong' chỉ vòng quanh nhận được điều tiếp theo cho đến khi iterator tăng StopIteration. Bạn có thể thoát ra khỏi vòng lặp và bắt đầu một vòng lặp khác mà sẽ tiếp tục nhận được điều tiếp theo. –
@ John và Petr, Cảm ơn bạn đã giúp tôi hiểu các tệp/trình vòng lặp tốt hơn! Tôi chọn giải pháp này vì mã của tôi sẽ yêu cầu khoảng 500 dòng nhìn về phía trước. – astay13