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

Python 在文本文件中存储和重新导入用户名和密码,python,Python,我是一名学习Python的学生,基本上不熟悉编码。我已经启动了这个“小游戏”端项目,但我在创建创建用户名和密码并将其存储到文本文件中的脚本时遇到了问题 def createUser(): import Usernames_Passwords.txt open("Usernames_Passwords.txt", "r") Username = raw_input("Create a username: ") Password = raw_input("Create a p

我是一名学习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()

创建新文件时,您需要使用“w”写入模式,这样写入

file = open("Usernames_Passwords.txt", "w")
如果文件已经创建并且您想添加到其中,您可以使用这样编写的附加模式

file = open("Usernames_Passwords.txt", "a")
如果要从已写入的文件中读取文件,可以像以前一样使用“r”模式

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

据我所知,import语句用于调用其他库,因此此程序不需要它。

我发现您发布的代码存在三个主要问题:

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

  • 您没有向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))
    
    如果我对
    %
    所做的操作让您感到困惑,那么它被称为字符串格式操作符。它允许您将变量插入到具有指定格式的字符串中。谷歌搜索一下就会告诉你所有你需要知道的事情

  • 您没有在登录功能中检查用户名\u Passwords.txt。这是您提到的第二个错误的原因。在另一个函数中定义Username时,将创建一个“局部”变量。这意味着您只能在该功能中访问它。看看吧,它很好地解释了什么是全局变量和局部变量。我认为您要做的是通过读取您之前写入的文件在登录函数中设置用户名和密码(这意味着您希望在“读取”模式下使用
    open()
  • 我会让你去弄清楚细节,但那是一个很好的开始。您发布的代码中的缩进中也存在一些问题,但我认为从您收到的错误判断,这些只是复制错误


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

    谢谢!但是文本文件是空的。我把它改为file=open(“Usernames\u Passwords.txt”,“a”),这真的很有帮助,谢谢!缩进是复制错误。我会在校外使用代码学院。
    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))