执行另一个python脚本并获得输出

2024-05-17 06:26:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在论坛里搜索过了,但是我没有找到任何能解决我问题的东西。我有两个简单的脚本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。怎么了?谢谢


Tags: pathpyimport脚本outputlibchecksys
2条回答

我怀疑您被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的

相关问题 更多 >