我对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如何知道存储它的位置?似乎没有关于文件存储位置的任何参数。它只是创建文件。
如果之前已经提出过这个问题,请将我链接到该问题,但我真的无法找到帮助我解决此问题的问题。谢谢!
答案 0 :(得分: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')