我刚开始学习Python,并尝试使用subprocess在一个脚本中运行另一个脚本。我在网上找到了几个非常接近的资源,但不幸的是它们都无法帮助我成功运行我的代码。
这是我想做的事情: 在我的主脚本script1中,我正在创建一个fabfile.py(script2)。需要从script1执行此脚本2或fabfile.py。经过一些研究,我发现execfile和os.systems不是好的选择,因此我决定使用subprocess。(参考:如何使一个Python文件运行另一个文件?)
这是我正在做但不起作用的内容:
注意:在这行代码中
这是我想做的事情: 在我的主脚本script1中,我正在创建一个fabfile.py(script2)。需要从script1执行此脚本2或fabfile.py。经过一些研究,我发现execfile和os.systems不是好的选择,因此我决定使用subprocess。(参考:如何使一个Python文件运行另一个文件?)
这是我正在做但不起作用的内容:
from os.path import expanduser
home = expanduser("~")
import os
os.getcwd()
desk = "/Desktop"
path = str(home)+str(desk)
f = open("fabfile.py","w") # Creating a fabfile.py
f.write("from fabric.api import run \ndef task1(): \n run('ls')")
import subprocess
host = raw_input("Enter the host IP with username e.g. root@10.0.0.2:")
p1 = subprocess.Popen(['fab', '-f path/fabfile.py', '-H host'],stdout=subprocess.PIPE)
output = p1.communicate()
print output
注意:在这行代码中
p1 = subprocess.Popen(['fab', '-f path/fabfile.py', '-H host'],stdout=subprocess.PIPE)
我尝试了很多不同的格式 - 引号和双引号的放置,使用$
和%
表示变量等等。但是似乎都没有起作用。是否有什么错误之处?
我看到的例子通常很简单,并且没有使用变量作为参数。