2016-09-15 43 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

谢谢,wim。我可以问你为什么这是一个坏主意? – Costantino

+0

孩子知道父进程状态似乎很奇怪。而且你必须处理父进程终止的情况,这并不容易做到没有并发。 – wim

+0

我正在考虑在这种情况下抛出异常并关闭程序 – Costantino