我正在尝试编写一个类似于登录计算机的程序,就像您可以创建一个"帐户"并且计算机将记住您的密码以供日后使用。 (所以你不能只使用一个简单的变量)
因此,该程序的工作原理是要求您选择创建帐户或登录。(如果用户选择创建帐户,我已准备好一些代码,但我会在以后添加它签署部分已完成。)我选择存储用户名和密码的方式是使用文本文档。用户名将是文本文档的名称(例如D:\ username.txt),密码将写在文本文档中。
import os
import sys
import fileinput
def signin():
username = input("Username:\n>>")
UsernameandPasswordfile = "D:\%s.txt" % username
password = "Password:\n>>"
print(UsernameandPasswordfile)
file = open(UsernameandPasswordfile, "r+")
for line in fileinput.input(UsernameandPasswordfile):
if password in line:
print("signed in!")
else:
print("error")
question = input("sign in or create new account?\n>>")
if question == "sign in":
signin()
以下是错误消息:
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\document.txt'
我有一个名为"文件"的测试文件。所以,如果我使用"文件"来运行我的程序作为我的用户名,它应该找到该文件。但它不是,因为它不断向文件位置添加额外的反斜杠,这当然会使位置错误。我可以改变什么来解决这个问题?
答案 0 :(得分:0)
从运行它,我没有看到此代码有任何问题。当文件存在时,它工作正常。确保文件存在,并且您正在查看正确的驱动器。
答案 1 :(得分:0)
检查评论后,您的问题是要求检查D:\中的文件是否存在,但您是否在桌面上创建该文件。这是两个不同的地方。
桌面不位于硬盘驱动器的根目录,例如 D:\ 。桌面通常位于 D:\ Users \ CJPeine \ Desktop (取决于您的用户),因此您需要先找到桌面所在的位置。
查找.txt所在位置(文件的常见路径)的更简单方法是右键单击文件并选择“属性”选项。在那里找到路径或位置信息。
然后你只需要更改下一行就能准确找到文件。
UsernameandPasswordfile = "D:\Users\CJPeine\Desktop\%s.txt" % username
反斜杠:
但是,这会产生问题。某些字符如\n
或\t
(以及其他字符)会创建特殊行为,这就是我们需要转义它们的原因。例如\n
添加一个新行,如果你写:
"this is a te\nst"
结果是:
this is a t
est
因此,为了解决这个问题,我们通过添加双反斜杠而不是一个反斜杠来逃避这些字符。添加它几乎意味着不要试图为我的反斜杠找到特殊行为"。最后,工作代码是。
UsernameandPasswordfile = "D:\\Users\\CJPeine\\Desktop\\%s.txt" % username