質問するログイン新規登録

回答編集履歴

1

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

2018/02/04 12:33

投稿

KojiDoi
KojiDoi

スコア13727

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