x=0
for i in range(0,9):
x=x+1
当我第二次运行脚本时,我希望x以值9开头。我知道上面的代码不符合逻辑。 x将获得零值。我写它是为了尽可能清楚。我通过将x值保存到txt文件找到了解决方案,如下所示。但如果删除了txt文件,我将丢失最后一个x值。这不安全。有没有其他方法可以保留第二次运行的最后一个x值?
from pathlib import Path
myf=Path("C:\\Users\\Ozgur\\Anaconda3\\yaz.txt")
x=0
if myf.is_file():
f=open("C:\\Users\\Ozgur\\Anaconda3\\yaz.txt","r")
d=f.read()
x=int(d)
else:
f=open("C:\\Users\\Ozgur\\Anaconda3\\yaz.txt","w")
f.write("0")
deger=0
for i in range(0,9):
x=x+1
f=open("C:\\Users\\Ozgur\\Anaconda3\\yaz.txt","w")
f.write(str(x))
f.close()
print(x)
答案 0 :(得分:1)
您无法100%防止用户删除数据。您可以采取一些步骤(例如将数据复制到其他地方,隐藏文件和设置权限),但如果有人愿意,他们可以找到删除文件的方法,将内容重置为原始值,或者做任何数量的事情来操纵数据,即使它需要拔掉硬盘驱动器并将其放在另一台计算机上。
这就是错误检查很重要的原因,因为开发人员无法做出100%可靠的假设,即现有的所有内容都处于正确的状态(特别是因为驱动器做长时间磨损造成奇怪的影响)。
答案 1 :(得分:0)
您可以使用databases,它们比文件丢失的可能性更小。您可以阅读MySQL using Python
但是,这不是保存 x 值的唯一方法。您的操作系统中可以有environment variable。例如,
import os
os.environ["XVARIABLE"] = "9"
要稍后访问此变量,只需使用
即可print os.environ["XVARIABLE"]
注意:在某些平台上,修改os.environ
实际上不会为当前进程或子进程修改系统环境。