我已经在论坛里搜索过了,但是我没有找到任何能解决我问题的东西。我有两个简单的脚本P1和P2。P1应该执行P2并打印它的返回值
第一页
import sys
import subprocess
sys.path.append('/anaconda2/lib/python2.7/')
output = subprocess.check_output('python P2.py', shell=True)
print output
第2页
^{pr2}$如果我运行P1,我不会收到任何输出,但是如果我运行P2,它会正确地输出值9。怎么了?谢谢
我怀疑您被IDE欺骗了,以为
P2.py
有它没有的输出。有时ide会打印一些对调试有用的内容,但不应与脚本的输出混淆。您的foo()
函数返回9,但P2.py
不输出9。在check_output只返回从子进程打印的内容(请参见the docs)。当前,
P2.py
不打印任何内容。它只计算一个值9并退出,这样P1.py
中的字符串output
为空。您永远不会要求它对foo()
的值执行任何操作,因此不会执行任何操作。将P2.py
中的foo()
替换为print foo()
,以实现您想要的行为。在当你想使用另一个文件中的函数时,你需要
import filename
(如果它们在同一个目录中),然后你可以用filename.functionName(variables)
来执行它编辑:这是针对python3.x的
相关问题 更多 >
编程相关推荐