我正在尝试编写一个类似于登录计算机的程序,这样您就可以创建一个“帐户”,并且计算机将记住您的密码以备后用。(所以你不能只使用一个简单的变量)
因此,该程序通过要求您选择创建帐户或登录来工作。(如果用户选择创建帐户,我已准备好一些代码,但我将在稍后添加部分签名完成。)我选择存储用户名和密码的方式是使用文本文档。用户名将是文本文档的名称(例如 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'
我有一个名为“文档”的测试文档。所以,如果我使用“document”作为我的用户名运行我的程序,它应该找到该文件。但事实并非如此,因为它不断向文件位置添加一个额外的反斜杠,这当然会使位置错误。我可以改变什么来解决这个问题?
检查评论后,您的问题是您要求检查 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句