我一直在從一個腳本發送一個變量到另一個腳本,並做了一些基本的事情很容易,但我已經卡住了,並希望得到一些輸入。發送從一個腳本到另一個腳本的循環變量的值
這是我script1.py
import time
x = 0
while x < 100:
x = x+1
time.sleep(1)
這是我script2.py
import subprocess
subprocess.Popen("python script1.py", shell=True)
from script1 import x
print(x)
這樣做的輸出僅僅是100
有沒有一種方法來打印變量每當它通過script2.py更新時,它們都是x
?
所有這些的原因是我正在從腳本中的串行端口讀取數據,但是我希望在不同的腳本中使用輸出。因此,只要有數據從串行端口獲得存儲在一個變量中,我希望將該變量傳遞給另一個腳本。
編輯:我有一個python腳本,它腳本從一個串口讀取數據並記錄數據。
就這麼說,我想要第二個腳本,它可以從第一個腳本獲取包含數據的列表,以便爲不同的任務操作它。
編輯2: 我修改了代碼如下,但沒有打印。
#script 1
import time
x = 0
while x < 100:
x = x+1
print(x)
time.sleep(1)
#script 2
import subprocess
proc = subprocess.Popen(['python','script1.py'],stdout=subprocess.PIPE)
while True:
line = proc.stdout.readline()
print(line)
那麼,是你通過一個子/管連接兩個腳本,或者你想要將一個導入另一個?你目前的方法沒有任何意義。 – deceze
我的腳本通過子過程鏈接。什麼樣的方法會有意義?我對python仍然很陌生,所以有很多我不熟悉的東西。 – BadProgrammer
如果您的腳本通過子流程/管道進行通信,則需要通過該管道傳遞值;例如'script1.py'寫入標準輸出,'script2.py'讀取第一個腳本的標準輸出管道。那麼你也不會從'script1'導入x,因爲這會繞過整個子流程/管道。 – deceze