【问题标题】:keep the last value of a variable for the next run为下次运行保留变量的最后一个值
【发布时间】:2017-12-22 20:52:44
【问题描述】:
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) 

【问题讨论】:

  • 你写了if the txt file is removed, I will lose the last x value. This is not safe. 但是如果你的python文件被删除了,这无论如何都不安全,你不觉得吗?

标签: python-3.x


【解决方案1】:

没有。

您无法 100% 防止用户删除数据。您可以采取一些步骤(例如将数据复制到其他地方,隐藏文件和设置权限),但是如果有人愿意,他们可以想办法删除文件,将内容重置为原始值,或做任何事情来处理数据,即使需要拔下硬盘驱动器并将其放入另一台计算机。

这就是错误检查很重要的原因,因为开发人员无法做出 100% 可靠的假设,即一切就绪并处于正确状态(尤其是因为驱动器确实会在长时间后磨损造成奇怪的影响)。

【讨论】:

    【解决方案2】:

    您可以使用databases,它们比文件更不容易丢失。你可以阅读MySQL using Python

    但是,这不是您保存 x 值的唯一方法。您的操作系统中可以有一个environment variable。例如,

    import os
    
    os.environ["XVARIABLE"] = "9"
    

    以后要访问这个变量,只需使用

    print os.environ["XVARIABLE"]
    

    注意:在某些平台上,修改os.environ不会真正修改当前进程或子进程的系统环境。

    【讨论】:

      猜你喜欢
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 2018-06-05
      • 2021-04-07
      相关资源
      最近更新 更多