-1
我正在使用2個python腳本: 腳本1使用subprocess.Popen()在腳本2中執行一個進程。在執行此過程時(需要一些時間),腳本1正在執行其他任務。 問題1)子過程是否是解決這個問題的最好方法? 問題2)有沒有什麼辦法通過使用通訊()將腳本1中的變量(只有int/float值)傳遞給腳本2 BESIDES?我如何在腳本2中使用這些變量(即我如何解決它們)?Python子流程標準桿
感謝您的幫助!
我正在使用2個python腳本: 腳本1使用subprocess.Popen()在腳本2中執行一個進程。在執行此過程時(需要一些時間),腳本1正在執行其他任務。 問題1)子過程是否是解決這個問題的最好方法? 問題2)有沒有什麼辦法通過使用通訊()將腳本1中的變量(只有int/float值)傳遞給腳本2 BESIDES?我如何在腳本2中使用這些變量(即我如何解決它們)?Python子流程標準桿
感謝您的幫助!
如果兩者都是python,爲什麼還要去終端?
你可以使用pythons線程。如果您想通過終端做它,你可以傳遞參數是這樣的:
process = subprocess.Popen(["python", "script2.py", "args"])
process.communicate()
或沿着這些線路至少東西(這可能是錯誤的心中已經永遠不會調用POPEN一個Python)。我如何做到這一點是通過使用python線程模塊(所以這不會與上面描述的Popen一起工作,如果你想要一個特定的答案,我想看看這些腳本文件是怎麼樣的)。總之:
script1.py:
from threading import Thread
from sources.script2 import prnt
import time
# 'Script1 function'
def prnt1():
for i in range(5000):
print('script1: %s' % i)
time.sleep(0.5)
# Starting 'script2'
t = Thread(target=prnt, args=(100, 4500)).start()
prnt1()
script2.py:上面的,如果我們不知道你要運行它很難給腳本什麼說
import time
def prnt(start, stop):
for i in range(start, stop):
print('script2: %s' % i)
time.sleep(0.5)
但是像諮詢。你的腳本是否有一個定義爲入口點的函數?或僅作爲獨立使用?,等...