Бот Discord для удаления строки из текстового файла - PullRequest
0 голосов
/ 03 августа 2020

У меня есть бот-дискорд, который читает и записывает в текстовый файл. Я набираю:

+add <url>, и он добавит URL-адрес в новую строку текстового файла.

Мне нужно +remove <url>, чтобы удалить URL-адрес, который соответствует ему в том же текстовом файле .

@bot.command()
async def add(ctx, args):
  url = args.lower() + '\n'

  with open('text.txt', 'a') as url_file:
    url_file.write(url)

@bot.command()
async def remove(ctx, args):
  url = args.lower() + '\n'

  with open("text.txt", 'r') as url_file:
    urls = url_file.readlines()

  replacement_urls = [url for url in urls if url != x]

  with open('text.txt', 'w') as url_file:
    url_file.truncate()
    url_file.write(''.join(replacement_urls))

+ add работает отлично, но когда я запускаю команду удаления, я получаю сообщение об ошибке

replacement_urls = [url for url in urls if url != x] NameError: name 'x' is not defined

Есть предложения?

1 Ответ

0 голосов
/ 03 августа 2020

Вы назвали входной URL-адрес url, но в понимании вашего списка вы переназначаете url каждому элементу urls.

replacement_urls = [x for x in urls if x != url]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...