私は、ユーザー名を確認するプログラムを書いているユーザー入力に比べ不合格私はユーザー入力とファイルからの読み込みを比較しますか?ユーザーログインは
1
A
答えて
1
別のネストされたコンテキストで同じファイルを再度開くことはお勧めできません。その代わり、追記モードで一度ファイルを開き、必要にいつでもスタートに戻るには、f.seek(0)
を使用します。if
ブランチのbool値を返す
def user_login():
""" Login and create a username, maybe """
with open('username.txt', 'a+') as f:
if f.readline() is "":
username = raw_input("First login, enter a username to use: ")
f.seek(0)
f.write(username)
# return True/False --> make the function return a bool in this branch
else:
login_id = raw_input("Enter username: ")
f.seek(0)
if login_id == f.readline():
return True
else:
print "Invalid username."
return False
if __name__ == '__main__':
if user_login() is not True:
print "Failed to verify"
は、あなたがそうリターンを検討する必要がありますものですあなたの関数の型はboolと一貫していて、現在の場合のようにNone
ではありません。
1
readline()
を初めて使用すると、現在のファイルの位置が最初のレコードを超えて移動されます。ファイル内に存在する場合、
import os.path
import sys
def user_login():
fname = 'username.txt'
""" Login and create a username, maybe """
if os.path.getsize(fname) == 0:
with open(fname, 'w') as f:
username = raw_input("First login, enter a username to use: ")
f.write(username)
return True #/False --> make the function return a bool in this branch
else:
with open(fname, 'r') as f:
login_id = raw_input("Enter username: ")
if login_id == f.readline().rstrip():
return True
else:
print >>sys.stderr, "Invalid username."
return False
if __name__ == '__main__':
if user_login() is not True:
print "Failed to verify"
f.readline()
の末尾に改行が含まれますraw_input()
はしません一方:ファイルが空の場合は見つけるためのより良い方法は、それの大きさをテストすることです。明示的に書き込むのではないが、誰かがファイルを編集して改行を意図せず追加することがあるため、防御上の予防策としてrstrip()
を追加してください。
関連する問題
- 1. Stormpath React SPAユーザーログイン
- 2. ユーザーログイン制御
- 3. Parse.comユーザーログイン - 404エラー
- 4. MVCユーザーログインとセッション
- 5. Python Flaskユーザーログインのリダイレクト
- 6. JQuery Mobile - ユーザーログインのベストプラクティス
- 7. vb.netのユーザーログインWindowsフォーム
- 8. AndroidベースのユーザーログインFirebase
- 9. ユーザーログイン後のFacebookログインウィンドウ
- 10. Branch.ioはユーザーログイン後にリダイレクトされます
- 11. ロールのユーザーログインを作成するには?
- 12. ユーザーログイン前の追加手順
- 13. Vb.net現在のユーザーログインPOS
- 14. JHipsterユーザーログインを避ける
- 15. ユーザーログインの時間制限
- 16. アンドロイド:mysqlのユーザーログイン認証JDBC
- 17. Django Restフレームワークによるユーザーログイン
- 18. laravelアクティブ状態のユーザーログイン
- 19. iPhoneでのユーザーログインの問題
- 20. RDPユーザーログインを確認する
- 21. Passport jsとmongoDBのユーザーログイン
- 22. セレンでのユーザーログイン認証?
- 23. ユーザーログイン後にコンテンツを追加
- 24. ワードプレスの未登録ユーザーログイン
- 25. スマートカードWindows UWPアプリのユーザーログイン
- 26. ssl svnユーザーログインの問題
- 27. PHP、MySQLの - 登録&Login-ユーザーログイン
- 28. ユーザーログインのためのAngular2 Authguard
- 29. ユーザーログイン後に画面にリダイレクト
- 30. ユーザーログインVB.NETのためのセッションを作成
甘い!ありがとうございました!私はかなりPythonの笑に新しいです –