回答編集履歴
3
質問変更内容に合わせて変更
test
CHANGED
@@ -1,17 +1,27 @@
|
|
1
|
-
|
1
|
+
```python
|
2
2
|
|
3
|
+
def find(lines, target, n=4):
|
4
|
+
|
5
|
+
i = 0
|
6
|
+
|
7
|
+
while i < len(lines):
|
8
|
+
|
3
|
-
|
9
|
+
if lines[i:i+len(target)] == target:
|
10
|
+
|
11
|
+
i += len(target)
|
12
|
+
|
13
|
+
yield lines[i:i+n]
|
14
|
+
|
15
|
+
i += n
|
16
|
+
|
17
|
+
else:
|
18
|
+
|
19
|
+
i += 1
|
4
20
|
|
5
21
|
|
6
22
|
|
7
|
-
|
23
|
+
found = list(find(open('test.txt').readlines(), ['333\n', '444\n']))
|
8
24
|
|
9
|
-
|
25
|
+
print(found)
|
10
|
-
|
11
|
-
['555', '666', '777', '888']
|
12
|
-
|
13
|
-
>>> open("test.txt").read().split("333\n444\n")[1].splitlines()[:-1]
|
14
|
-
|
15
|
-
['555', '666', '777', '888']
|
16
26
|
|
17
27
|
```
|
2
意図しないケースを追記
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
いろいろな方法があると思いますが簡単な例。
|
2
|
+
|
3
|
+
12333\n444\n があったとしても一致してしまうので、正規表現を使った方がいいでしょうけど。
|
2
4
|
|
3
5
|
|
4
6
|
|
1
説明文追加
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
いろいろな方法があると思いますが簡単な例。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
```python
|
2
6
|
|
3
7
|
>>> open("test.txt").read().split("333\n444\n")[1].splitlines()[:4]
|