我想定期运行一个python脚本,每次重复都持久化一个变量.我怎么能做到呢?



我有一个基于轴承移动机器人的python脚本。计算的轴承是相对于另一个机器人的。我想计算一个校正因子基于机器人移动的磁轴承加上与网络中其他点的距离变化。这个校正因子可以应用到相对于另一个机器人计算的轴承上,使轴承更接近真正的磁轴承(我已经计算出这背后的数学,但不认为有必要在这里深入细节)。

我的脚本运行的方式是通过调用其他脚本并向它们传递值并从中读取它们。一个简单的伪代码看起来像:
find a bearing relative to another bot to the point to be reached
move towards it along this bearing
test accuracy of the bearing
calculate a correction factor

然后我想重复脚本并纠正最初用修正因子计算的轴承(简单地添加或减去x度)

如何在每次脚本重复时保持变量,以便可以在下次添加或减去修正因子,而不必从头开始重新计算?

将其保存在如下文件中:

import json
json.dump(data, open(filename, 'wb'))

,下次用

f = open(filename)
data = json.load(f)
f.close()

Json是人类可读的,很好。在Python中序列化数据的另一种好方法是pickle模块。优点是可以透明地存储几乎任何Python值。

下面是一个例子:

import pickle
def put_persistent(data):
    with open('data.pkl', 'wb') as output:
        pickle.dump(data, output)
def get_persistent(default=None):
    try:
        with open('data.pkl', 'rb') as pkl_file:
            return pickle.load(pkl_file)
    except IOError:
        return default

最新更新