我正試圖找到最簡單的方法來從一個腳本共享實時變量到另一個腳本。第一個腳本將讀取seonsor數據,其他腳本將根據第一個腳本的實時數據進行計算。我想分開跑他們。我希望能夠殺死第二個腳本並再次運行,而不會有任何問題。Python - 如何與另一個腳本共享實時數據
我想有第二個腳本來打印實時數據,只要它啓動。
更新:
我已經finaly得到了一些時間os.pipe玩()。我設法運行了一些使用os.fork()的腳本,但是當我試圖將一個腳本分成兩個單獨的程序時,我開始遇到一些問題。
計劃我已經initated並工作:
#!/usr/bin/python
import os, sys
r, w = os.pipe()
processid = os.fork()
if processid:
os.close(w)
r = os.fdopen(r)
print("Parent reading")
str = r.read()
print("text =", str)
sys.exit(0)
else:
os.close(r)
w = os.fdopen(w, 'w')
print("Child writing")
w.write("Text written by child...")
w.close()
print("Child closing")
sys.exit(0)
基於該腳本我試着寫我自己單獨的腳本。
第一個腳本,打印時間管:
#!/usr/bin/python
import os, sys, time
stdout = sys.stdout.fileno()
r, w = os.pipe()
#os.close(r)
w = os.fdopen(w, 'w')
i = 0
while i < 1000:
i = i + 1
w.write('i' + " ")
time.sleep(1)
第二個腳本,從管道中讀取時間:
#!/usr/bin/python
import os, sys, time
r, w = os.pipe()
r = os.fdopen(r)
str = r.read()
print(str)
當我嘗試運行我的劇本沒有任何反應。任何建議我做錯了什麼?也許我錯過了關於標準輸入輸出和os.pipe()的一些細節?
最簡單的機制是使用文件系統。將script1附加到文本文件。然後讓script2輪詢新行。 – user590028
...或使用命名管道。使用文件或管道,請注意緩衝。 – cdarke
我認爲管道是我一直在尋找的東西。我需要現在瞭解它的工作原理。謝謝! –