两个python脚本,并希望它们一起工作



首先,我有两个python脚本。让我们看看

#Script1.py
import time
i = 0
while True:
i = i+1
print(i)
time.sleep(1)
#Script2.py
from script1 import i
print(i)
第二,我运行Script1
Result of Script1
1
2
3
.
.

然后,连续运行Script2

Result of Script2
1
2
3
.
.

问题是我希望Script2打印Script1的当前值,而不是重新运行Script1,如:

Run Script1 :
1
2                Run Script2 :
3                3
4                4
5                5

谢谢你的回答!

可以使用线程并行运行。考虑以下代码:

from time import sleep
from threading import Thread
class Task(Thread):
i = 0
def run(self):
while True:
self.i += 1
sleep(1)

t = Task()
t.start()
sleep(5)
print(t.i)

这里的主要问题是每次导入模块Script1时都会调用该模块中的所有代码。这意味着导入模块与运行模块具有相同的效果。

处理这个问题的一种常用方法是添加以下语句,除非模块直接运行,否则它将阻止执行:
# Script1
import time
if __name__ == '__main__':
# ...

然而,从您期望的输出来看,您似乎希望在第一个正在运行的脚本运行时读取它。这里的代码不会实现这一点,因为它是阻塞的(也就是说,它不会屈服于其他请求,它将完全执行,在这种情况下,永远执行,在它让其他任何事情发生之前)。

最新更新