回答編集履歴

1

部分部分をファイルに出力するようサンプルスクリプトをバージョンアップ

2018/02/04 12:33

投稿

KojiDoi
KojiDoi

スコア13671

test CHANGED
@@ -1,4 +1,10 @@
1
1
  test.txtを対象として、「サブタイトル」を含む行から「#ここまで抽出したい」を含む行までを出力するスクリプトを書いてみました。
2
+
3
+
4
+
5
+ 追記。変数outfileに書き込み先ファイルを持たせるようにし、併せて出力が必要か否かのフラグの機能も持たせるようにしました。
6
+
7
+ 流れとしては間違っていないと思いますが、細かいミスが残っているかもしれません。
2
8
 
3
9
 
4
10
 
@@ -8,7 +14,7 @@
8
14
 
9
15
  import re
10
16
 
11
- flag = False
17
+ outfile = ""
12
18
 
13
19
 
14
20
 
@@ -18,24 +24,32 @@
18
24
 
19
25
  line=line.rstrip('\r\n')
20
26
 
21
- if not flag:
27
+ if outfile=="":
22
28
 
23
- m = re.match("サブタイトル",line)
29
+ m = re.search("サブタイトル([A-Z]+)",line)
24
30
 
25
31
  if m:
26
32
 
27
- print(line)
33
+ outfile = "out_{}.txt".format(m.group(1))
28
34
 
35
+ fo = open(outfile, "w")
36
+
29
- flag = True
37
+ fo.write(line)
38
+
39
+ fo.write("\n")
30
40
 
31
41
  else:
32
42
 
33
- print(line)
43
+ fo.write(line)
44
+
45
+ fo.write("\n")
34
46
 
35
47
  m = re.match("#ここまで抽出したい",line)
36
48
 
37
49
  if m:
38
50
 
39
- flag = False
51
+ fo.close()
52
+
53
+ outfile=""
40
54
 
41
55
  ```