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

回答編集履歴

1

追記

2018/06/19 16:32

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -3,4 +3,48 @@
3
3
  起動時に読み取ったテキストをsetに放り込んで使うのが簡単ではないでしょうか。
4
4
  そして終了時にファイルを上書きしてやれば良いです。
5
5
 
6
- テキスト形式に拘らなければ、バイナリで出力するのが効率的でしょう。
6
+ テキスト形式に拘らなければ、バイナリで出力するのが効率的でしょう。
7
+
8
+ 書いてみた
9
+ ---
10
+ ```Python
11
+ from pathlib import Path
12
+ import pickle
13
+
14
+
15
+ FILE_PATH = Path(__file__).parent / 'words.pkl'
16
+
17
+ def main():
18
+ #
19
+ if FILE_PATH.exists():
20
+ with FILE_PATH.open(mode='rb') as f:
21
+ words = pickle.load(f)
22
+ else:
23
+ words = set()
24
+
25
+ #
26
+ while True:
27
+ try:
28
+ word = input('>>> ')
29
+ except EOFError:
30
+ break
31
+
32
+ if word in words:
33
+ print('already exists.')
34
+ else:
35
+ words.add(word)
36
+
37
+ #
38
+ with FILE_PATH.open(mode='wb') as f:
39
+ pickle.dump(words, f)
40
+
41
+
42
+ if __name__ == '__main__':
43
+ main()
44
+ ```
45
+
46
+ なお、pklファイルの中身はpickleモジュールを直接叩けば覗けます。
47
+ ```cmd
48
+ >python -m pickle words.pkl
49
+ {'', 'hoge', 'aweff', 'fuu', 'foo', 'fuga', 'hgoe'}
50
+ ```