2016-05-05 2 views
0

Я работаю над программой, и я подхожу к ней, и я только что внедрил в свой чат-бот способность бота помнить пользователей, у которых есть уже говорили с ними. Это было легко сделать, сохранив имя, которое пользователь дает моему чатботу текстовому файлу, но чтобы закончить мою программу, я хотел бы узнать, сколько раз пользователь говорил с моим чатом, но я не уверен, как сделай это.Python - подсчет количества посещений пользователем

Я знаю, что его нужно хранить в текстовом файле, но как я могу дать каждому пользователю подсчет посещений?

#Defining the YouTube Channel function 
def Maximus(): 
    #Holding the end user's name to make the chatbot more friendly 
    userName = raw_input ("\nPlease enter your name: ") 
    if userName in open('usernames.txt').read(): #Checks to see if user is pre-existing 
     print ("Welcome back, %s. Good to see you again!" % (userName)) #If user is pr-existing, send this message 
    else: 
     print ("Nice to meet you %s, I'm Maximus, the friendly bot that helps to answer any questions you may have about YouTube's website!\nType quit to go back to the main menu." % (userName)) 
     fw = open('usernames.txt', 'a') 
     fw.write("%s\n" % (userName)) #Creates the new user, which Maximus remembers 
     fw.close() 

enter image description here

Где что «Welcome Back» отображается сообщение, в конце этого, я хотел бы показать, сколько раз пользователь вошел в систему, чтобы поговорить с Chatbot

+3

Что вы пробовали? Вы можете использовать ['collections.Counter'] (https://docs.python.org/2/library/collections.html#collections.Counter). – Bahrom

+0

@Bahrom Это моя первая запись в файл, так как я только начал собирать Python так, чтобы не сохранять имена пользователей в файл, ничего больше. –

+2

Опубликуйте свой код до сих пор (просто необходимые фрагменты). Наличие образца ввода/вывода помогает. Вопрос довольно широк. Как вы пишете имена, например? – Bahrom

ответ

1

Используйте модуль json для хранения словаря с именами в качестве ключей и количества посещений в качестве значений.

import json 


def Maximus(): 
    # Holding the end user's name to make the chatbot more friendly 
    userName = raw_input("\nPlease enter your name: ") 

    with open('usernames.txt', 'r') as f: 
     userCounts = json.load(f) 

    if userName in userCounts: 
     userCounts[userName] += 1 
     print ("Welcome back, {}. Good to see you again! " 
       "This is the {} time you have spoken to me.".format(
        userName, userCounts[userName])) 
    else: 
     userCounts[userName] = 1 
     print ("Nice to meet you {}, I'm Maximus, the friendly bot " 
       "that helps to answer any questions you may have " 
       "about YouTube's website!\nType quit to go back " 
       "to the main menu.".format(userName)) 

    with open('usernames.txt', 'w') as f: 
     json.dump(userCounts, f) 
0

Если вы делаете это через Интернет, вы можете использовать куки? В противном случае я бы сказал, делайте это через модуль JSON, как указано выше.

Смежные вопросы