【发布时间】:2017-10-07 06:05:44
【问题描述】:
如果我正在运行一个 python 脚本(带有完整的 Tkinter GUI 和所有内容)并且我想将它收集的实时数据(内部存储在数组等中)传递给另一个 python 脚本,那么最好的方法是什么那个?
我不能简单地将脚本 A 导入脚本 B,因为它将创建脚本 A 的新实例,而不是访问已经运行的脚本 A 中的任何变量。
我能想到的唯一方法是让脚本 A 写入文件,然后脚本 B 从文件中获取数据。但是,这不太理想,因为如果脚本 B 尝试读取脚本 A 已经写入的文件,则可能会发生一些不好的事情。另外,我正在寻找两个程序之间更快的通信速度。
编辑: 以下是所要求的示例。我知道为什么这不起作用,但这是需要实现的基本前提。我的源代码很长而且很不幸是保密的,所以在这里没有帮助。总之,脚本 A 运行 Tkinter 并收集数据,而脚本 B 是 views.py 作为 Django 的一部分,但我希望这可以作为 Python 的一部分来实现。
脚本 A
import time
i = 0
def return_data():
return i
if __name__ == "__main__":
while True:
i = i + 1
print i
time.sleep(.01)
脚本 B
import time
from scriptA import return_data
if __name__ == '__main__':
while True:
print return_data() # from script A
time.sleep(1)
【问题讨论】:
-
您应该能够将一个模块导入另一个模块,实例化单个实例(必要时使用单例),然后为该实例分配属性/值,以便您可以根据需要从中读取辅助脚本。
-
如果脚本不是太长或太敏感,查看源代码会有所帮助
-
也许你可以使用文件套接字?这似乎是流数据的一种选择。
-
问题含糊不清。 “将实时数据传递给另一个脚本”可能意味着许多不同的事情。你怎么通过它?通过插座?通过一个宁静的界面?作为命令行参数?您是在启动第二个程序时传递一次数据,还是随着数据的变化不断更新数据?请出示Minimal, Complete, and Verifiable example
标签: python python-2.7 tkinter