回答編集履歴

1

追記

2018/06/19 16:32

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -9,3 +9,91 @@
9
9
 
10
10
 
11
11
  テキスト形式に拘らなければ、バイナリで出力するのが効率的でしょう。
12
+
13
+
14
+
15
+ 書いてみた
16
+
17
+ ---
18
+
19
+ ```Python
20
+
21
+ from pathlib import Path
22
+
23
+ import pickle
24
+
25
+
26
+
27
+
28
+
29
+ FILE_PATH = Path(__file__).parent / 'words.pkl'
30
+
31
+
32
+
33
+ def main():
34
+
35
+ #
36
+
37
+ if FILE_PATH.exists():
38
+
39
+ with FILE_PATH.open(mode='rb') as f:
40
+
41
+ words = pickle.load(f)
42
+
43
+ else:
44
+
45
+ words = set()
46
+
47
+
48
+
49
+ #
50
+
51
+ while True:
52
+
53
+ try:
54
+
55
+ word = input('>>> ')
56
+
57
+ except EOFError:
58
+
59
+ break
60
+
61
+
62
+
63
+ if word in words:
64
+
65
+ print('already exists.')
66
+
67
+ else:
68
+
69
+ words.add(word)
70
+
71
+
72
+
73
+ #
74
+
75
+ with FILE_PATH.open(mode='wb') as f:
76
+
77
+ pickle.dump(words, f)
78
+
79
+
80
+
81
+
82
+
83
+ if __name__ == '__main__':
84
+
85
+ main()
86
+
87
+ ```
88
+
89
+
90
+
91
+ なお、pklファイルの中身はpickleモジュールを直接叩けば覗けます。
92
+
93
+ ```cmd
94
+
95
+ >python -m pickle words.pkl
96
+
97
+ {'', 'hoge', 'aweff', 'fuu', 'foo', 'fuga', 'hgoe'}
98
+
99
+ ```