2014-10-20 4 views
1

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

def check(entry): 
    search = open('password.txt', 'r') 
    if str(entry) in str(search): 
     return (entry, "Word found") 
    else: 
     return entry, ("Word not found") 

with open('password.txt', 'r') as text: 
    print (text.read()) 

while True: 
    entry=input("\nSearch for word: ") 
    print(check(entry)) 

Когда я запускаю код будет сказать, что 1, 2, 5 и 12, все в тексте, но ни одно из слов, которые в тексте не подтверждены. Если кто-то может помочь, это будет оценено, спасибо.

+0

Я бы предложил загрузить файл в словарь в начале вашего приложения и сравнить с ним. Выполнение большого количества операций ввода-вывода файлов может быть утечкой производительности приложения. Кроме того, вы никогда не должны хранить текстовые пароли. Это серьезная проблема безопасности. – Grice

+0

yes thatw будет чем-то, над чем я буду двигаться, чтобы создать, но в настоящий момент я просто хочу, чтобы логин действительно работал – george

ответ

1

Игнорирование плохих идей безопасности, рассмотренных в другом комментарии, str (поиск) не работает, как вы думаете. Если вы печатаете, вы должны увидеть что-то вроде:

<open file 'password.txt', mode 'r' at 0x0000000001EB2810> 

, которая является описанием объекта, созданным с открытой функцией. Вам нужно сначала прочитать файл в строке с методом .read().

+0

в порядке, это имеет больше смысла, по сравнению с тем, что я тем не менее. поэтому я буду использовать для str (entry) в str (search.read()): – george

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