我有一个bash文件,我通常使用Cygwin执行。 我需要从我的Python代码中运行这个文件。
我试过了:
for bashfile in files:
p = Popen(bashfile, cwd=dname) #dname is the current directory of the script
stdout, stderr = p.communicate()
我也看到了一个类似的问题here,但是当试图以这种方式运行时,它说它无法找到我的bash文件的目录......
有什么想法吗?谢谢! : - )
修改: bashfile
有完整路径。
答案 0 :(得分:2)
您是否需要将其输出直接发送到Python?如果不是这可能是非常快速和简单的解决方案:
os.system("""here some code you use to execute in Terminal""")
答案 1 :(得分:1)
你也可以试试这个,虽然它确实(并且无论你怎么做)都不管目录在哪里。就输出而言,这可能比os
方法更清晰。
import commands
cmd="bash ./script.sh"
commands.getoutput(cmd)
如果您需要更改目录:
cmd = "/path/to/your/script/script.sh"
使用此方法的额外好处,与os
相比,您可以将输出分配给变量......
fun_times = commands.getoutput("bash ./script.sh")
...而
not_fun_times = os.system("./script.sh")
会抛出错误。
等等。