在文本文件中存储和重新导入用户名和密码

2024-04-18 13:32:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个学习Python的学生,对一般的编码还不熟悉。我已经启动了这个“迷你游戏”端项目,但是我在创建一个创建用户名和密码并将它们存储到文本文件的脚本时遇到了问题。你知道吗

def createUser():
   import Usernames_Passwords.txt
   open("Usernames_Passwords.txt", "r")
   Username = raw_input("Create a username: ")
   Password = raw_input("Create a password: ")

但它出现了一个错误:

import Usernames_Passwords.txt
ImportError: No module named Usernames_Passwords.txt

我删除了导入行,程序的其余部分一直工作到出现以下错误:

if User == Username and PassWord == Password:
NameError: global name 'Username' is not defined

整个脚本如下:

import os
import time
import sys


def createUser():
import Usernames_Passwords.txt
open("Usernames_Passwords.txt", "r")
Username = raw_input("Create a username: ")
Password = raw_input("Create a password: ")



def login():

    User = raw_input ("Enter Username: ")
    time.sleep(0.5)
    PassWord = raw_input ("Enter Password: ")

    if User == Username and PassWord == Password:
        print "."
        time.sleep(0.5)
        print "."
        time.sleep(0.5)
        print "."
        time.sleep(0.5)
        print "."
        time.sleep(0.5)
        print "Login successful! Proceeding"
        logged()

    else:
        print "."
        time.sleep(0.5)
        print "."
        time.sleep(0.5)
        print "."
        time.sleep(0.5)
        print "."
        time.sleep(0.5)
        print "Your Username or Password did not match, please try again"
        time.sleep(2)

def logged():

print "WELCOME TO SUPER MARIO INTERACTIVE SIMULATOR 2000"
time.sleep(1.5)
print "PLEASE ENTER YOUR NAME BELOW"
Name = raw_input ("NAME: ")
print "HELLO THERE", Name
time.sleep(1)
print "PLEASE ALSO INSERT YOUR AGE"
Age = raw_input ("AGE: ")
print "GOOD YOU ARE", Age
time.sleep(2)
print "BUT FIRST YOU MUST PASS THIS TEST"

createUser()
time.sleep(3)
login()

Tags: importtxtinputrawtimedefcreateusername
2条回答

你发布的代码有三个主要问题:

  1. 您正在打开文本文件的只读副本。正如MoonMoon所指出的,您不需要那个import语句。Import只适用于您想要使用的库,所以请去掉它(这是第一个错误的原因,python找不到名为“Usernames”的模块)_密码.txt"). 您想使用“open”函数访问文件。open()函数的第二个参数是打开文件的模式。“r”是读的,“w”是写的,“a”是附加的。因为我认为您希望多次运行这个程序,并将所有过去的用户名和密码保存在您希望附加的同一个文件中。完成后你还需要关闭文件。最简单的方法是使用with语句。您可以阅读有关with语句here的更多信息:

    with open("Usernames_Passwords.txt", 'a') as f:
        # do something 
    
  2. 您没有向txt文件写入任何内容。你必须告诉python写这个文件,否则你什么都不保存。尝试以下操作:

    with open("Usernames_Passwords.txt", 'a') as f:
        Username = raw_input("Create a username: ")
        Password = raw_input("Create a password: ")
        f.write('%s, %s \n' % (Username, Password))
    

    如果我对%所做的使您感到困惑,那么它就称为字符串格式操作符。它允许您将变量插入到具有指定格式的字符串中。一点点谷歌搜索就会告诉你所有你需要知道的事情。

  3. 您没有检查用户名_密码.txt这是您提到的第二个错误的原因。在另一个函数中定义Username时,会创建一个“局部”变量。这意味着您只能在该函数中访问它。看看this python tutorial它很好地解释了什么是全局变量和局部变量。我认为您要做的是在您的登录函数中设置username和passsword,方法是读取您之前写入的文件(这意味着您要在“read”模式下使用open())。你知道吗

我让你去弄清楚细节,但那是个很好的开始。您发布的代码中的缩进也有一些问题,但从您收到的错误来看,我认为这些只是复制错误。你知道吗

顺便说一句,当我第一次学习编码,我用“代码学院”。这是一个在线互动教程,教授python。我想你会从中得到很多。你知道吗

当创建一个新的文件时,你需要使用“w”写模式。你知道吗

file = open("Usernames_Passwords.txt", "w")

如果文件已经创建并且您想添加到其中,您可以使用这样编写的append模式。你知道吗

file = open("Usernames_Passwords.txt", "a")

如果要从已写入的文件中读取文件,可以像以前一样使用“r”模式。你知道吗

file = open("Usernames_Passwords.txt", "r")

据我所知,import语句用于调用其他库,因此您不需要特别为这个程序调用它。你知道吗

相关问题 更多 >