将变量从一个python传递给另一个python

时间:2017-05-23 16:12:05

标签: python bash variables data-transfer-objects

我是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'只打印'完成',我怎么能解决这个问题。 那些必须是同时运行的程序。

3 个答案:

答案 0 :(得分:1)

简而言之:这是不可能的。

Long:通过使用此主题中描述的其他技术可以实现这一点:

how-to-share-variables-across-scripts-in-python

答案 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做很多事情。