我可以使用用subprocess
函数在python 3.3中编写的脚本在我的脚本和用2.7编写的另一个脚本之间创建管道吗?
如果答案是肯定的,我应该这样做吗?
import subprocess
output = subprocess.check_output(['scriptInV2.7.py', '-arg1', '-arg2'])
myFunctionInV3.3(output)
我对python很新,抱歉我缺乏理解力
答案 0 :(得分:4)
您可以使用建议的方法。在shebang中指定python可执行文件(你需要并行安装python 2和3):
#! /usr/bin/env python2
和(在你的python 3调用脚本中):
#! /usr/bin/env python3
或您可以在调用脚本时指定解释器:
output = subprocess.check_output(['/usr/bin/python2', 'scriptInV2.7.py', '-arg1', '-arg2'])
(使用python2可执行文件的路径更新)。
答案 1 :(得分:0)
是的,你可以这样做。但是check_output
通常将可执行文件作为第一个参数,因此scriptInV2.7.py
需要设置执行权限并且有一个调用python2.7的shebang行。
您最好明确指定python可执行文件作为第一个列表元素。