Попытка написать новый файл в Discord.py и ничего не происходит - PullRequest
0 голосов
/ 06 июня 2018

Я довольно плохо знаком с 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')

Моя проблема в том, что когда я запускаю свой код и бот снова присоединяется к серверу, файл не создается.Также ничего не печатается, кроме «Joined [serverName]», которое запускается до начала поиска и записи файла.Компилятор не показывает никаких ошибок.

Я посмотрел, что лучший способ проверить, существует ли файл, - это использовать os.walk, так что я использую этот метод здесь.Есть ли более эффективный способ сохранения данных при доступе к ним, о котором я не знаю?

Другой вопрос, который у меня возникает, - когда вы создаете новый файл, как Python знает, где его хранить?Кажется, нет никаких параметров относительно того, где файл должен быть сохранен.Он просто создает файл.

Если этот вопрос уже задавался, пожалуйста, свяжите меня с ним, но я не смог найти тот, который помог бы мне с этой проблемой, с которой я столкнулся.Спасибо!

1 Ответ

0 голосов
/ 13 июня 2018

Как то так?

@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')
...