我有一个通常使用Cygwin执行的bash文件。我需要从我的 Python 代码运行这个文件。
我试过这个:
for bashfile in files:
p = Popen(bashfile, cwd=dname) #dname is the current directory of the script
stdout, stderr = p.communicate()
我在这里也看到了一个类似的问题,但是当尝试以这种方式运行它时,它说它找不到我的 bash 文件的目录......
有什么想法吗?谢谢!:-)
编辑:bashfile
有一个完整的路径。
你需要它的输出才能直接到Python吗?如果没有,这可能是非常快速和简单的解决方案:
os.system("""here some code you use to execute in Terminal""")
你也可以试试这个,尽管它确实(无论你尝试什么)目录在哪里很重要。就输出而言,这可能比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")
将抛出错误。
等等等等。