我是python中的新手,我想在python中运行两个simultaneousos程序,一个将始终更改X的值,另一个必须读取此变量,如果X更改执行某些操作,我尝试这样做:
第一个程序:
first.py
pd.DatetimeIndex(df['T2':'T3'].loc(idx)) + pd.DateOffset(1)
second.py
import time
rocket =0
while rocket<10:
time.sleep(1)
rocket+=1
但是我的结果不是我想要的,因为在线导入之后,火箭的价值总是10,所以我的second.py从不打印'火箭少于10'只打印'完成',我怎么能解决这个问题。 那些必须是同时运行的程序。
答案 0 :(得分:1)
答案 1 :(得分:0)
导入文件时,其中的所有内容都将继续运行。所以你现在所做的并不是实际并行运行两个程序,import
中的second.py
语句指示运行first.py
,然后继续执行其余的指令。
执行此操作的pythonic方法只是通过import
语句传递对象。我们可以定义具有rocket
属性的charge
类,第二个程序检查此属性,然后通过方法添加到该属性。它看起来像这样。
first.py
import time
class Rocket: # class object usually start with a capital letter.
def __init__(self): # Method used to initialize an instance of the class
self.charge = 0
def add_charge(self):
self.charge += 1
second.py
import first
rocket = first.Rocket() # We actually create a new object here
while rocket.charge < 10:
rocket.add_charge()
print('rocket less than 10')
print 'done'
请注意,仍然没有两个程序同时运行。第一个文件定义然后在第二个文件中使用的对象。简单地说,第一个文件绘制我们将要使用的对象的计划,第二个文件构建它。
如果您想要实际并行运行两个python脚本,它们将被包含在自己的虚拟机中,您不得不求助于使用first.py
写入文件并使用second.py
从中读取,但我并没有真正看到分别运行两个文件的重点。
写完这篇文章之后,再次提出你的问题,似乎我可能已经认为你已经知道了课程等等,可能不是这样的......所以请随意提出要求!
答案 2 :(得分:-3)
抱歉python不能像这样工作。因为每当你调用first.py时,second.py将等待first.py完成。
对于这种情况,您需要构建API。好消息是,你可以用python做到这一点。请谷歌搜索或查看YouTube视频。你可以用python做很多事情。