为了账号安全,请及时绑定邮箱和手机立即绑定

在计算机关闭之前修改变量的值?

在计算机关闭之前修改变量的值?

至尊宝的传说 2021-12-17 15:52:51
我正在用 python 编写一个程序,它有三个模块:1. settings.py 2. init.py 3. main.pysettings.py 只有一个布尔变量,目标是将它用作False跨模块的全局变量(我们称之为 var,初始化为)init.py 导入 var,并True在函数中执行某些操作后将其设置为main.py 必须检查var == True. 如果是,继续执行程序,否则要求用户提供一些命令行指令(例如,prg start),然后调用 init.py 中的函数,该函数反过来也将设置var==True问题是,由于我制作了一个从 CLI 获取参数的程序,因此var始终设置为 False。因此,CLI 接受的唯一命令是prg start打印我编写的错误消息。我需要一些方法来var保持True会话的剩余时间,会话实际上会转换为直到计算机关闭为止。main.py 的代码first = sys.argv[0]arguments = sys.argv[1:]second = arguments[0]if settings.var == False and second != "start":    print "Error, type \'prg start\' to start"    sys.exit(0)if second == "start":    init.start()这就是我想要完成的:pi@raspberrypi: ~$ prg 开始pi@raspberrypi: ~$ prg 设置颜色 4成功现在发生了什么:pi@raspberrypi: ~$ prg 开始pi@raspberrypi: ~$ prg 设置颜色 4错误,输入“prg start”开始
查看完整描述

2 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

您可以使用文件来永久存储变量!


查看完整回答
反对 回复 2021-12-17
?
慕斯王

TA贡献1864条经验 获得超2个赞

您需要某种在关机时消失的持久存储。尽管您的程序当前未运行,但它也必须是持久的。

想到的解决方案:

文件:

将上次启动时间写入文件,并添加上次'prg start - 确定后者是否在前者之后:

  • Linux:last reboot+上次 通话的日期时间'prg start'- 您可以确定重启之前/之后

  • Windows:(systeminfo | find /i "Boot Time"或任何您的语言中的称呼),相同的原则

该文件不会消失,但您的“上次重启时间”将在重启时重置。'prg start'如果使用其他参数开始,您可以简单地在文件中收集时间戳并根据“上次重新启动”的当前值检查“实时”。

服务器/客户端:

首先产生一个独立的“服务器”进程'prg start'- 检查该进程是否使用

“服务器”进程将在重新启动时消失(或手动杀死时 - 但如果删除它,文件也会消失......)


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信