我是Python的新手,对于编码一般来说相对较新,我只是想编写一段代码来查看是否可以附加一个列表,然后当重新加载.py时,更改会保存到其中?
我不确定这是否可能与没有相当数量的工作的列表,但我没有尝试让我到那里。
我目前的测试代码是:
lDUn = []
lDPw = []
def enterUn():
usrName = input(str("Enter your desired username:\n"))
if usrName in lDUn:
print ("Username is already in use, please try again")
enterUn()
else:
print ("Username created!")
lDUn.append(usrName)
enterUn()
def enterPw():
pW1 = input(str("Enter your desired password:\n"))
pW2 = input(str("please re-enter your password:\n"))
if pW1 == pW2:
print ("Password created!")
lDPw.append(pW1)
else:
print ("Passwords do not match, please try again")
enterPw()
enterPw()
当lDUn
和lDPw
稍后检查包含时,它们注册没有问题,但是当程序关闭并稍后重新打开时它们就会消失。
我试过写它' pW'和' usrName'输入到.txt但未能让它在稍后搜索特定字符串的.txts。 (但这是针对不同的问题)除此之外,我不确定如何处理我目前对Python的了解。
答案 0 :(得分:0)
重新启动程序时,变量值(在本例中为列表内容)从不自动保存。您需要编写一些代码,在程序退出之前将值保存到文件中,还有一些代码在程序重新启动时从文件中读取值。
由您决定如何将列表转换为可放入文件的字节。一种常见的方法是将列表中的字符串写入文件,每行一个,然后再次读取它们。您可以使用methods of file
objects。
另一种选择是使用pickle
module。这可能会为您省去一些努力,因为您只需为它提供一个Python对象并为您处理转换为字节,但您将无法查看和编辑生成的文件。 (嗯,你可以,但它看起来像乱码,因为它是一个二进制文件。)
答案 1 :(得分:0)
这基本上就是你做的事情:
只要您处理小文件和小“流量”,这样就可以正常工作。如果其中任何一个增加,那么您将有严重的性能和/或一致性问题。要正确解决这些问题,您应该使用正确的数据库,从sqlite开始(不需要单独的服务器)。