使用 Python 运行 bash 文件



我有一个通常使用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")

将抛出错误。

等等

等等。

相关内容

  • 没有找到相关文章

最新更新