-2

我正在linux中编写一个python程序。

在我的 python 程序中,我需要从 python 程序本身内部执行另一个工作目录中的 linux 命令。

示例:我的程序 test.py 在目录 dir1/dir2 中。

./wlst.sh 是 dir1/dir2/dir3/dir4 中的一个程序。

所以我需要从位于 dir2 的 python 程序执行 dir4 中的 .wlst.sh。

如何才能做到这一点?

4

3 回答 3

3
import subprocess
try:
  output = subprocess.check_output(
    [ './wlst.sh' ],
    cwd='dir1/dir2/dir3/dir4',
    stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as problem:
  print "Error", problem.returncode
  print "  while calling subprocess, output was:", problem.output
else:
  print "No error while calling subprocess, output was:", output

我不得不提一下,这捕获了子进程的所有输出,所以如果这个子进程做了很多很多(并且可能永远不会终止),这将填满你的 RAM。在这种情况下考虑使用check_call()而不是check_output(),也许将输出重定向到/dev/null.

于 2013-03-27T14:50:29.197 回答
0
import subprocess
subprocess.call(['./wlst.sh'], cwd='dir1/dir2/dir3/dir4')
于 2013-03-27T14:28:50.233 回答
-2
    import os ,subprocess
    os.chdir("dir3/dir4")
    os.system("./wlst.sh")

否则你可以使用子进程

    os.chdir("dir3/dir4")
    subprocess.call("./wlst.sh")
于 2013-03-27T14:51:35.077 回答