2016-09-15 7 views
0

で動的にディレクトリを取得しますが、私は端末からバックグラウンドでの私のPythonスクリプトを実行します。スクリプトでPythonスクリプト

python myscript.py & 

私はos.getcwdでカレントディレクトリを取得するループを持っています()。しかし、私がターミナルの作業ディレクトリを変更した場合、スクリプトが起動された元のディレクトリにスクリプトが添付されていることがわかっているので、スクリプトは新しいディレクトリを取得しません。

現在のディレクトリをPythonスクリプトから更新するにはどうすればよいですか?つまり、スクリプトを起動したプロセスの現在の作業ディレクトリをどのように追跡できますか?

+0

最後の段落でご質問を少し修正してください。 **端末**には現在の作業ディレクトリがありません。 **プロセスは**行います。あなたの質問は "*スクリプトを起動したプロセスの現在の作業ディレクトリを追跡するにはどうすればいいですか?" –

+1

この種の要件を持っているなら、はるかにクリーンな方法で行うことができます)。 – SuperSaiyan

+0

イム好奇心なぜあなたはこれが欲しいでしょうか?私はかなり良い最終的な結果に到達するより良い方法があることを確信しています... –

答えて

1

免責事項:これを行わないでください。

import os 
import subprocess 
from time import sleep 

ppid = os.getppid() 

print "parent process id: ", ppid 
subprocess.check_call(['pwdx', str(ppid)]) 
sleep(5) # do `cd other` in the parent process here 
subprocess.check_call(['pwdx', str(ppid)]) 
+0

ありがとう、ウィム。なぜこのような悪い考えですか? – Costantino

+0

子プロセスが親プロセスの状態を知っているのは変です。そして、親プロセスが終了するケースを処理する必要があります。それは並行処理なしでは簡単ではありません。 – wim

+0

私はこの場合例外をスローしてプログラムを終了することを考えていました – Costantino