我在后台运行我的python脚本从终端具有:获取目录动态与python脚本
python myscript.py &
在脚本我有一个循环获取当前目录os.getcwd()。如果我在终端中更改我的工作目录,那么脚本不会获得新目录,因为据我所了解,该脚本附加到从其启动的原始目录。
如何从python脚本更新当前目录,即如何跟踪启动脚本的进程的当前工作目录?
我在后台运行我的python脚本从终端具有:获取目录动态与python脚本
python myscript.py &
在脚本我有一个循环获取当前目录os.getcwd()。如果我在终端中更改我的工作目录,那么脚本不会获得新目录,因为据我所了解,该脚本附加到从其启动的原始目录。
如何从python脚本更新当前目录,即如何跟踪启动脚本的进程的当前工作目录?
声明:不这样做。
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)])
谢谢,wim。我可以问你为什么这是一个坏主意? – Costantino
孩子知道父进程状态似乎很奇怪。而且你必须处理父进程终止的情况,这并不容易做到没有并发。 – wim
我正在考虑在这种情况下抛出异常并关闭程序 – Costantino
对最后一段中的问题稍作修改。 **终端**没有当前的工作目录。 **进程**。所以你的问题是“*我怎样才能跟踪启动脚本的进程的当前工作目录?” –
如果你有这样的需求,你正在做的事情可以做得更干净)。 – SuperSaiyan
我很好奇为什么你会想要这个?我敢肯定,有一个更好的方式来达到预期的最终结果... –