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

我正在用 python 编写一个程序,它有三个模块:1. settings.py 2. init.py 3. main.py


settings.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”开始


至尊宝的传说
浏览 192回答 2
2回答

婷婷同学_

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

慕斯王

您需要某种在关机时消失的持久存储。尽管您的程序当前未运行,但它也必须是持久的。想到的解决方案:文件:将上次启动时间写入文件,并添加上次'prg start - 确定后者是否在前者之后:Linux:last reboot+上次 通话的日期时间'prg start'- 您可以确定重启之前/之后Windows:(systeminfo | find /i "Boot Time"或任何您的语言中的称呼),相同的原则该文件不会消失,但您的“上次重启时间”将在重启时重置。'prg start'如果使用其他参数开始,您可以简单地在文件中收集时间戳并根据“上次重新启动”的当前值检查“实时”。服务器/客户端:首先产生一个独立的“服务器”进程'prg start'- 检查该进程是否使用” 管道通讯 “你在吗?- 沉默.vs. “你那里?” - “YEP”(fe Python multiprocessing - 进程之间的管道通信)或检查您的“服务器”实例是否已在运行(确保只有一个程序实例正在运行)“服务器”进程将在重新启动时消失(或手动杀死时 - 但如果删除它,文件也会消失......)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python