-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 に答える