私は電子メールとパスワードをリストのテキストファイルに入れました。フォーマットは["[email protected]","Password1"],["[email protected]","Password2]
です。Pythonはテキストファイルから正しく読み込みませんか?
私のコードは、テキストファイルから読み込み、それをテキストファイルに存在するかどうかを確認するためにユーザー入力と比較します。何らかの理由で最初のメール"[email protected]"
を入力すると、それはテキストファイルから読み取られますが、"Password1"
ではなく、"[email protected]"
と正しく"Password2"
が正しく読み取られます。私はこれを回避し、これを修正するための方法を見つけることができません?エラーは受信されないので、どこが間違っているのか分かりません。コードが実行された場合
def Login():
with open("logindata.txt","r") as file:
for line in file:
line=line.split(",")
logindata.append([line[0],line[1].rstrip()])
print(logindata)
found=False
while found == False:
email=input("Enter email:")
password=input("Enter password:")
with open("logindata.txt","r")as file:
for line in file:
line = line.split(",")
if email in line:
print("Correct email")
if password in line:
print("Correct Password")
found=True
if __name__ == "__main__":
Login()
と私はその後、唯一の第二メールアドレスとパスワードの組み合わせが動作開始時に与えた入力を試してみてください。ここに私のコードです。ここでは、テキストファイルがtext file format
追加するように見えるものです:あなたが行区切りでテキストを読んでいる
username=input("Enter a new email")
password=input("Enter a password")
with open('logindata.txt','a')as file:
line='\n'+ username + ',' + password
file.write(line)
print("user added")
あなたが削除するのを忘れ改行; 'password'は行にないので、' password \ n'は行にあります。 –
@MartijnPietersこれに戻って申し訳ありませんが、テキストファイルに新しいメールを追加したい場合は、\ nをパスワードの最後に置いて次の行に追加する必要があります。 – Tom
最良の方法: 'csv.writer()'を使ってファイルを書きます。 'writerow()'メソッドを使うたびに改行が追加されます。それ以外の場合は、書き込み時に手動で追加します。 'fileobj.write( '{}、{} \ n'.format(userid、password))'などです。 –