我正在开始一个基本的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)
注意 - 上面的代码不是我的确切方案,我不能在这里使用它,因为它不会工作,因为它使用模块访问外部设备。但这大致是我想要做的。
由于
答案 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
文件名中提供整个路径。