質問編集履歴
1
コードブロックできてなかったので修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
|
2
|
+
ゲーム内のアイテムなどを管理するプログラムを作っています
|
3
|
+
!add アイテム名 数値
|
4
|
+
とインプットすると```stock.txt```内にアイテム名と数値が入力されるような形にしています
|
3
|
-
!add 石 10
|
5
|
+
例えば!add 石 10とインプットすると
|
4
6
|
```
|
5
7
|
---------------------------
|
6
8
|
石
|
7
9
|
10
|
8
10
|
---------------------------
|
9
11
|
```
|
10
|
-
と入力されるように
|
12
|
+
と```stock.txt```内に入力されるようになっています。
|
11
|
-
すでに石がstock.txt内にあるときに!add 石 数値 と入力された際にすでにアイテムがありますと出力するようにしたはずなのですが
|
12
|
-
|
13
|
+
そこですでに```stock.txt```内にアイテムがある場合に```すでにアイテムがあります```と出力するようにしたのですが、```!add 石 10```とした後にもう一度```!add 石 10```とするとまたテキストファイル内に入力されてしまいます
|
13
|
-
ですが
|
14
|
+
ですが一度プログラムを再起動してからまた```!add 石 10```とすると、```すでにアイテムがあります```と出力されます
|
14
|
-
なぜでしょうか
|
15
|
-
|
15
|
+
どのようにすれば実行中に!addコマンドを連続で実行して```すでにアイテムがあります```と出力するようにできますでしょうか。
|
16
16
|
|
17
|
+
### 該当のソースコード
|
17
18
|
|
18
|
-
### 該当のソースコード
|
19
19
|
```Python
|
20
20
|
c = open('/Users/unkoman/Documents/discord-inmu/stock/stock.txt')
|
21
21
|
with open('/Users/unkoman/Documents/discord-inmu/stock/stock.txt') as f:
|
@@ -30,13 +30,12 @@
|
|
30
30
|
if message.content.count(' ') == 2:
|
31
31
|
print(sr[0])
|
32
32
|
if sr[0] not in stock:
|
33
|
-
f.close()
|
34
33
|
with open('stock.txt', mode='a') as sw:
|
35
34
|
sw.write(last)
|
36
35
|
await message.channel.send(reply)
|
37
36
|
elif sr[0] in stock:
|
38
|
-
c.close()
|
39
37
|
await message.channel.send('すでにアイテムがあります')
|
40
38
|
|
41
39
|
else:
|
42
|
-
await message.channel.send('コマンドの形式が違います')
|
40
|
+
await message.channel.send('コマンドの形式が違います')
|
41
|
+
```
|