簡體   English   中英

Subprocess.Popen 沒有完成被調用的腳本

[英]Subprocess.Popen doesnt finish the called script

我的目標是通過使用 subprocess.Popen 調用不同的 python 腳本並將結果保存在 txt 文件中。 我用了

process = subprocess.Popen("start cmd /c abq2020 python " + directory + os.sep + "data_mean.py", shell=True)
process.wait()

file = np.loadtxt(directory + os.sep + 'Values.txt')

在我的主程序和

f = open(varpath + os.sep + 'Values.txt','w+')

for i in Output:
    for j in i:
        f.write(str(j) + '     ')
    f.write('\n')
    
f.close()

在子程序中。

現在我的問題是主程序不會等到子程序創建 txt 文件並因此產生錯誤消息。

我使用這種方法是因為我不知道在主進程和子進程之間傳遞變量的另一種方法。 我感謝任何想法和建議。

提前致謝。

我不知道apq2020是什么以及為什么它在 python 命令之前,但我假設您知道自己在做什么。 您不需要也不應該啟動命令提示符。 除了提供許多缺少的import語句之外,這就是您所需要的:

process = subprocess.Popen("abq2020 python " + directory + os.sep + "data_mean.py", shell=True)
process.communicate() # process.wait() will work in this case, too

file = np.loadtxt(directory + os.sep + 'Values.txt')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM