用于监视来自另一个正在运行的脚本

时间:2017-06-27 16:37:52

标签: python

我正在开始一个基本的python工作。我的主脚本运行控制某些东西的代码。然后我想要第二个python脚本来监视这些值并在控制台中打印它们。主脚本处于一个常量的while循环中,所以我必须将这段代码分开,但我无法使它工作。

示例场景:

主脚本的值为' x'那是在移动一个轮子。我只访问了值' x'当它等于20时,每当访问x时输出值都不起作用。 监控程序需要能够捕获并输出它们之间的变化。

file1.py

x = 0

while True:
    x = x + 1
    if x == 20:
        print('X = 20 ... Resetting X = 0')
        x = 0

file2.py -

import file1
import time

while True:
    print(x)
    time.sleep(0.1)

注意 - 上面的代码不是我的确切方案,我不能在这里使用它,因为它不会工作,因为它使用模块访问外部设备。但这大致是我想要做的。

由于

1 个答案:

答案 0 :(得分:0)

您需要将公共变量的值打印到两个脚本外部的存储点。您可以将其写入文件或从那里读取,但我建议您使用pickle。你可以这样做:

file1.py:

import cPickle as pickle
x = 0
while True:
    x = x + 1
    with open("shared_file.pkl","r+") as fp:
        pickle.dump(x,fp)
    if x == 20:
        print('X = 20 ... Resetting X = 0')
        x = 0

file2.py:

import cPickle as pickle
import time
x = 0
while True:
    with open("shared_file.pkl","r") as fp:
        x = pickle.load(fp)
    print x
    time.sleep(0.1) 

希望这有帮助!

编辑:

我假设您的脚本都是从同一目录运行的。如果它们从不同的路径运行,只需从根目录而不是仅仅pkl文件名中提供整个路径。