试图在Discord.py中写一个新文件,但没有任何事情发生

问题描述 投票:0回答:1

我是Python和Discord.py的新手,所以如果这个问题的答案对我来说更明显,我会道歉。

我希望能够使用我的机器人从服务器保存数据并查看数据(如果必须的话),所以我认为最有效的方法是让我的机器人为每个服务器写入文本文件以包含所有他们的数据。

以下是我的代码。

import discord
from discord.ext, import commands
import os

@bot.event
async def on_server_join(server):
  print('Joined ' + server.name)
  for root, dirs, files in os.walk('Physix'): # Creating the file for the server if it doesn't already exist
    if server.name + '.txt' in files:
      print('File for ' + server.name + ' already exists')
    else:
      newFile = open(server.name + '.txt', 'w+')
      newFile.write(server.name + '\n')
      newFile.close()
      print('File for ' + server.name + ' created')

我的问题是,当我运行我的代码并让机器人重新加入服务器时,没有创建任何文件。除了在文件搜索和写入开始之前运行的“加入[serverName]”之外,甚至都没有打印。编译器不显示任何错误。

我查看了查看文件是否已存在的最佳方法是使用os.walk,这就是我在这里使用的方法。是否有更有效的方法来保存数据,同时能够访问我不知道的数据?

我的另一个问题是当你创建一个新文件时,Python如何知道它的存储位置?似乎没有任何关于文件存储位置的参数。它只是创建文件。

如果之前已经问过这个问题,请把它链接到我,但我真的找不到一个能帮我解决这个问题的人。谢谢!

python file discord discord.py os.walk
1个回答
1
投票

像这样的东西?

@client.event
async def on_server_join(server):
    with open('info.txt','w') as file:
        file.write("Server name: " + server.name)
        print('File for ' + server.name + ' created')
© www.soinside.com 2019 - 2024. All rights reserved.