Я делаю программу, которая проверяет, есть ли какие-либо пользовательские данные в файле.Если пользовательский ввод в данный момент отсутствует в файле, мы добавим этот ввод в файл used_passwords и попросим пользователя ввести еще что-нибудь еще.иначе, если они повторно вводят ввод, который мы только что добавили (или любой из пресетов), то мы хотим сказать им, что они не могут повторно использовать пароль.
Проблема, с которой я сталкиваюсь с этим кодом, состоит в том, что всякий раз, когда явведите букву из слова в файле used_passwords или, если я введу часть слова в файле, программа сообщит мне, что я не могу повторно использовать пароль.
Например: если я набираюв «abc» программа сообщит мне, что я уже повторно использовал этот пароль, и я предполагаю, что это, вероятно, потому, что программа считывает файлы символьно и читает abc в abcdeF! 23.
Хотя,Я не хочу, чтобы программа сообщала мне, что я не могу повторно использовать a или несколько символов из файла.Я хочу, чтобы программа сказала мне, что я не могу повторно использовать слово из программы
Мне также интересно, могли бы мы поместить входные данные или пресеты в массив В ФАЙЛЕ.
fileUsed_Pass = open("used_passwords.txt", 'a')
fileUsed_Pass.write("\nabcdeF!23")
fileUsed_Pass.write("\n\n")
fileUsed_Pass.write("zxcbhK#44")
fileUsed_Pass.write("\n\n")
fileUsed_Pass.write("poiuyT&11")
fileUsed_Pass.write("\n\n")
fileUsed_Pass.close()
def password():
string = input("Enter Here:")
if string in open('used_passwords.txt').read():
print("You can not reuse that password!\n")
password()
else:
# file-append.py
f = open('used_passwords.txt','a')
f.write('\n'+string)
f.close()
password()
password()
ОБНОВЛЕНИЕ : Я получил код для работы с использованием оператора with.
вместо использования оператора If и else, я использовал оператор with.
Здесь я проверяю каждую строку на наличие текста, соответствующего моей входной строке.Если их нет, тогда мы сделаем some_variable равным True.Если это не так, то мы сделаем его равным ложному.
with open("used_passwords.txt", 'r') as tFile:
for line in tFile:
if string != line and string+"\n" != line:
some_variable = True
else: #If it equals anything else from the file, then false
some_variable = False
break
#print(some_variable)
#this was added for me/the user to make sure that the with statement was working
Впоследствии, если оно будет равно True: мы добавим его в файл.Если этого не произойдет, мы заставим пользователя ввести другой пароль, который не совпадает ни с одним из указанных в файле.
tFile = open("used_passwords.txt", 'a')
if some_variable == True:
tFile.write("\n" + string)
print("\nGOOD! Password does not match old ones!")
elif some_variable == False:
print("\nYou can not re-use a password!")
password()