Python Subprocess stdin

时间:2017-08-30 17:33:34

标签: python

我正在使用2个python脚本: 脚本1使用subprocess.Popen()在脚本2中执行进程。执行此过程(需要一些时间)时,脚本1正在执行其他操作。 问题1)是subprocess.Popen解决此问题的最佳方法吗? 问题2)有没有办法使用communic()将脚本1中的变量(只有int / float值)传递给脚本2 BESIDES?如何在脚本2中使用这些变量(即如何解决它们)?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果两个都是python,为什么还要去终端?

你可以使用pythons线程。如果你通过终端进行,你可以传递这样的参数:

process = subprocess.Popen(["python", "script2.py", "args"])
process.communicate()

或至少在这些方面的某些事情(这可能是错的我从来没有用Popen称为python)。我如何做到这一点是通过使用python Threading模块(所以这不适用于上面描述的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)

但是如上所述,如果我们对您想要运行的脚本一无所知,则很难提供建议。你的脚本是否有一个在其中定义的函数作为入口点?或者仅作为独立的?等...