回答編集履歴

2

追記

2018/04/26 07:59

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  word.append(token)
24
24
 
25
- fp.write(str(word))
25
+ fp.write(str(word)) # 単にwritelines使っちゃダメなの?
26
26
 
27
27
  fp.write("\n")
28
28
 

1

追記

2018/04/26 07:59

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,3 +1,51 @@
1
1
  関数extract_wordsを呼び出すたびに、上書きしてしまっているのだと思います。
2
2
 
3
3
  追記モードでファイルを開いてみてください。⇒ `open("test_token.txt", "a")`
4
+
5
+
6
+
7
+ ---
8
+
9
+ 良く考えたら、毎回ファイルを開くのってものすごく無駄になりそうですね。
10
+
11
+ extract_wordsがファイルオブジェクトを受け取る仕様にすれば良いかも。
12
+
13
+ ```Python
14
+
15
+ def extract_words(text, fp=sys.stdout):
16
+
17
+ ...
18
+
19
+
20
+
21
+ for token in tokens:
22
+
23
+ word.append(token)
24
+
25
+ fp.write(str(word))
26
+
27
+ fp.write("\n")
28
+
29
+
30
+
31
+ ...
32
+
33
+
34
+
35
+ ...
36
+
37
+
38
+
39
+ with open('test_token.txt', 'w') as fp:
40
+
41
+ wordlist = [extract_words(sentence, fp) for sentence in sentences]
42
+
43
+
44
+
45
+ ...
46
+
47
+ ```
48
+
49
+
50
+
51
+ 引数なしで呼び出せば標準出力で見られるというおまけつきです。