我正在尝试从this回答运行代码。为方便起见,代码如下。
main.py
val fs = FileSystem.get(new java.net.URI("wasb://testContainer@testhdi.blob.core.windows.net/example/"), new Configuration())
val status = fs.listStatus(new Path("wasb://testContainer@testhdi.blob.core.windows.net/example/"))
status.foreach(x=> println(x.getPath)
client.py
from subprocess import Popen, PIPE
p = Popen(['py', 'client.py'], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
r = True
while r:
r = p.stdout.readline()
print r
OUTP:
def fn():
for a in (0, 1, 2):
print a
fn()
提供答案的人说这对他们有用。但是,我不能让它产生输出。我在Mac,Linux和Windows上尝试使用python 2.7。
如果这适合您,请解释为什么它不适合我。我所做的只是b'0\r\n'
b'1\r\n'
b'2\r\n'
b''
在两个文件所在的目录中。
编辑:“OUT:”是我应该得到的。但是,我一无所获。
答案 0 :(得分:0)
如果你这样做会怎么样?
main.py
from subprocess import check_output
client_output = check_output(['python', 'client.py'])
print client_output
https://docs.python.org/2/library/subprocess.html
您应该查看Popen.communicate()
方法。
也许是这样的:
main.py
from subprocess import Popen, PIPE
p = Popen(['python', 'client.py'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
print p.communicate()[0]