簡體   English   中英

請幫助:AttributeError: 'str' object 沒有屬性 'write'

[英]please help :AttributeError: 'str' object has no attribute 'write'

我正在為我的課程做作業,但我不斷收到錯誤消息

AttributeError: 'str' object has no attribute 'write'

有人可以幫我理解我做錯了什么嗎? 我將在下面列出代碼並省略偽代碼。

def main():

    import datetime
    print("PasswordChecker3 program developed by: Nicholas Webb")

    MIN_PASSWORD_LENGTH = 6
    MAX_PASSWORD_LENGTH = 10
    PASSWORD_LOG_FILE = "password_log_Nicholas_Webb.txt"
    curr_date_and_time = datetime.datetime.today()

    password = input("Enter Password: ")
    password_len = len(password)

    while password_len < MIN_PASSWORD_LENGTH or password_len > MAX_PASSWORD_LENGTH:
        print(f"Your Password has {password_len} characters, Password length needs to be between {MIN_PASSWORD_LENGTH} and {MAX_PASSWORD_LENGTH} characters long.")
        open(PASSWORD_LOG_FILE, "a")
        if password_len < MIN_PASSWORD_LENGTH:
            print(f"password length is {password_len} characters long.")
            invalid_password_reason = "password < 6"
            PASSWORD_LOG_FILE.write("{a}, {b} characters".format(a=curr_date_and_time, b=invalid_password_reason))
            PASSWORD_LOG_FILE.write("\n")
        else:
            print(f"password length is {password_len} characters long.")
            invalid_password_reason = "password > 10"
            PASSWORD_LOG_FILE.write("{a}, {b} characters".format(a=curr_date_and_time, b=invalid_password_reason))
            PASSWORD_LOG_FILE.write("\n")

        password = input("re-enter password: ")
        password_len = len(password)
    PASSWORD_LOG_FILE.close()
    if password.isnumeric():
        print("Password weak - Contains only numbers")
    elif password.isalpha():
        print("Password weak - Contains only letters")
    else:
        print("Password strong")


main()

PASSWORD_LOG_FILE初始化為

PASSWORD_LOG_FILE = "password_log_Nicholas_Webb.txt"

所以PASSWORD_LOG_FILE是一個字符串。
它不是file object,它不能執行讀或寫操作。
你不能在它上面應用像這樣的方法

PASSWORD_LOG_FILE.write("{a}, {b} characters".format(a=curr_date_and_time, b=invalid_password_reason))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM