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

質問編集履歴

1

コードブロックできてなかったので修正

2019/11/15 01:57

投稿

salvage12345
salvage12345

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,21 +1,21 @@
1
1
  ### 前提・実現したいこと
2
- Pythonでアイテムを管理する機能を作っています
2
+ ゲーム内のアイテムなどを管理するプログラムを作っています
3
+ !add アイテム名 数値
4
+ とインプットすると```stock.txt```内にアイテム名と数値が入力されるような形にしています
3
- !add 石 10のようにするとstock.txtに
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
- !add 石 10とやってstock.txt内に力し、その後にもう一度!add 石 10とるとまたテキストファイル内に入力されてしまいます
13
+ そこですでに```stock.txt```内にアイテムがある場合に```すでにアイテムがあります```と出するようにですが、```!add 石 10```とした後にもう一度```!add 石 10```るとまたテキストファイル内に入力されてしまいます
13
- ですがなぜか一度プログラムを再起動したあとにもう一度!add 石 数値、とするとすでにアイテムがありますと出力されます
14
+ ですが一度プログラムを再起動してからま```!add 石 10```とすると、```すでにアイテムがあります```と出力されます
14
- なぜでしょうか
15
- Discord.pyとゆうものを使っます
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
+ ```