Python Python | Хелпа с кодом

Lyonya Decart

Участник
Автор темы
113
7
Пишу бота для ВК на python, но я не очень силён в синтаксисе. Я написал код, но он не хочет работать )) У меня есть документ, в котором есть сообщения и ответы на них (они разделяются знаком '\'). Нужно, чтобы скрипт открывал этот документ и каждую строчку добавлял в массив1.

Новое сообщение бота ВК поступает в отдельную функцию. Перед этим я обьявляю массив2 При новом сообщение скрипт должен пройтись по массиву1, извлечь весь текст каждого элемента массива до знака-разделителя('\'). И сделать проверку: if извлеченный текст in новое сообщение: Извлечь весь текст этого же элемента массива, но после знака-разделителя('\') и добавить этот текст в массив2 После этого нужно выбрать рандомный элемент из массива2 и отправить его в ВК. Над отправкой в ВК можете не париться, это уже готово.



Python:
f = open('answer_databse.txt', 'r')

om = 0
omg = []

for line in f:
    om = om + 1
    omg[om] = line

def onNewMsg(text,user):
    ddd = {}
    dada = 0
    for item in omg:
        result = re.match(r'(.+)\\', item)
        if result in text:
            dada = dada + 1
            ddd[dada] = re.match(r'\\(.+)', item)
    ada = 0
    for item in ddd:
        ada = ada + 1
    txt = ddd[random.uniform(1, ada)]
    write_msg(user,txt,random.uniform(10300130, 20300130))
    return
 
Последнее редактирование модератором:

0xNull_Dll

Участник
79
15
split пробовал?

Код:
database = open('твоя база', 'r')

questions = []
answers = []

for line in database:
    q, a = line.split('/')
    questions.append(q)
    answers.append(a)
 
Последнее редактирование:
  • Нравится
Реакции: Lyonya Decart

0xNull_Dll

Участник
79
15
Проблемы с кодировкой. Ты вопросы / ответы через блокнот писал? Или как? Скинь хоть 1 строку, попробую что-нибудь сделать
 

0xNull_Dll

Участник
79
15
Короче, как я и думал, проблема с кодировкой.

Во-первых:

Зайди в этот же текстовый документ, жмякни "Файл -> сохранить как -> снизу будет надпись (у меня encoding, на русской винде будет что-то типа кодировка) -> поставь там ANSI и сохрани с заменой

Во-вторых, тестил на вот этом коде, работает:

Код:
import numpy as np

files = open('C:/Users/PC/Desktop/answer_databse.txt', 'r+')

f1 = files.readlines()

for line in f1:

    line = line.split('\\')

    line = np.array(line)
   
    q = line[0]

    a = line[1]

    print(q, a)
 

es3n1n)

Новичок
8
19