2017-10-27 9 views
2

まず、私はこのサイトを初めて利用しています。こんにちは:)ユーザー入力をファイルデータと一致させるには

私はしようとしているプログラムに問題があります。私が今しようとしているのはログインシステムです。ユーザーはユーザー名とパスワード(すでに登録済みです)を入力してから、ユーザー名とパスワードを 'accounts.txt'というファイルで照合することができます。

これは、後で自分のアカウントで生成するデータを関連付けることができることを意味します。それが確認されています一度

while loop == (2): 
print("Welcome to login.") 
verifyuser = input("Enter your username: ") 
verifypass = input("Enter your password: ") 
f = open("accounts.txt","r") 
for line in f: 
    if re.match(verifyuser, line) and match(verifypass, line): 
    loop = (3) 

ループ3は、プログラムの残りの部分に沿って、それを取る:

は、ここで私がこれまで持っているものです。私はこのre.matchのことは正確には機能しませんが、私はこれについてどうやって行くことができるのか分かりません。私はいくつかのルートを試しました。 、私はこの特定の領域を行うことはできません。

おかげ

+0

if verifyuser in line: 'line'にユーザ名が含まれているかどうかをチェックし、if line == verifyuser:'行とユーザ名が完全に一致するかどうかをチェックします。 – hoefling

答えて

0

re.matchは、ここで使用されていないようだ正規表現のためのものです。 https://docs.python.org/2/library/re.html#re.match

私はファイルでユーザー資格情報を推奨しませんが、なぜequals演算子を使用していませんか?

if verifyuser == line: 

また、verifyuserとverifypassの両方が同じ行でtrueになる可能性はありますか?

user_match = False 
pswd_match = False 
for line in f: 
    if verifyuser == line: 
     user_match = True 
    if verifypass == line: 
     pswd_match = True 
    if user_match and pswd_match: 
     # loop = (3) 
0

私は実際にこのようなことをしました。私はあなたとは違ったやり方でやりました。これは私のテキストファイルは、情報を格納するように見えたものです:

username : password 

それから私は、このような情報をお求めになります。

f = open('filename.txt', 'r') 
username = input('Enter your username: ') 
password = input('Enter your password: ') 
user = username + ' : ' + password 
if user in f.read(): 
    print('Loggin successful') 
else: 
    print('incorrect username or password') 

あなたはあなただけ追加することができます5回のチャンスのようなユーザーを与えたい場合素敵な小さなforループです。

for i in range(5): 
    f = open('filename.txt', 'r') 
    username = input('Enter your username: ') 
    password = input('Enter your password: ') 
    user = username + ' : ' + password 
    if user in f.read(): 
     print('Loggin successful') 
     break 
    else: 
     print('Incorrect username or password') 

これは私のスクリプトと同じではありませんが、これはもう少し長い間行われますが、これで作業は完了します。

+0

ありがとうございます。これは機能します。 :) –

+0

正しい印を付けてもよろしいですか?おかげさまで、助けてくれてありがとう。 –

関連する問題