изменять .txt файлы с определенными условиями - PullRequest
0 голосов
/ 05 августа 2020
• 1000 1005 *
  1. Когда человек пишет команду, мой бот должен записывать разногласия по идентификатору сервера, если он уже есть, отображать сообщение о его наличии (добавить идентификатор сервера в txt файл)
  2. Когда человек пишет команду, мой бот должен найти идентификатор этого сервера в этом списке и удалить его оттуда, если его там нет, отобразить сообщение об ошибке (Удалить идентификатор сервера из txt файла) I know how to get discord server id i need only how to add server id to txt file and delete from txt file полное объяснение: 1.
 if my_server_id not found in servers_id_list:
  add my_server_id to new stroke in txt file
 else:
  print('File contain my_server_id')
 if my_server_id found in servers_id_list:
  delete my_server_id from server_id_list
 else:
  print('File not contain my_server_id')

постарался как можно подробнее объяснить, помогите ... хи cough .. помоги мне.

Ответы [ 2 ]

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

Вот рабочий код:

f=open("data.txt","r") #use any file name you want
lines=[]
for line in f:
    lines.append(line.strip())
f.close()
def check_add(sid):
    if str(sid) in lines:
        print('File contain my_server_id')
    else:
        lines.append(check_id)

def check_delete(sid):
    if str(sid) in lines:
        lines.remove(check_id)
    else:
        print('File not contain my_server_id')
    
check_id=input() #server id
check_add(check_id) # or check_delete(check_id), depends which function you need


f_app=open("data.txt","w") #use any file name you want, this is for writing result to file after changes
for l in lines:
    f_app.write(l+"\n")
f_app.close()

У вас есть 2 функции, как вы описали. Сначала проверяется, и если идентификатора нет, он его добавляет. Во-вторых, проверьте, есть ли идентификатор, и если он есть, он удаляет его.

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

Похоже, текстовый файл для этого не идеален (я бы использовал базу данных), но чтобы добавить что-нибудь в конец:

with open(file, 'a') as f:
    f.write(id)

Для удаления вам, вероятно, придется прочитать весь файл в массив, а затем измените его и перезапишите его.

https://docs.python.org/3/tutorial/inputoutput.html

...