Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中访问环境变量的当前值_Python_Environment Variables - Fatal编程技术网

如何在Python中访问环境变量的当前值

如何在Python中访问环境变量的当前值,python,environment-variables,Python,Environment Variables,我知道os.getenv和os.environ将允许我读取环境变量的值,但我正在编写一个程序,需要动态检测终端窗口的大小。如果每次都不启动子流程就可以这样做,那就太好了。我也知道(该页面还提供了子流程解决方案),但我很好奇,对于获取环境变量的当前值这一看似简单的问题,是否有一个直接的解决方案。正如文章提到的,有一个解决方案仅使用os库。一般来说,答案是不可能从一个进程中从另一个进程中获取环境变量的当前值(除非您明确添加一种传递此信息的方式)。当一个进程分叉另一个进程时,它可以指定子进程的启动环境

我知道
os.getenv
os.environ
将允许我读取环境变量的值,但我正在编写一个程序,需要动态检测终端窗口的大小。如果每次都不启动子流程就可以这样做,那就太好了。我也知道(该页面还提供了子流程解决方案),但我很好奇,对于获取环境变量的当前值这一看似简单的问题,是否有一个直接的解决方案。

正如文章提到的,有一个解决方案仅使用os库。一般来说,答案是不可能从一个进程中从另一个进程中获取环境变量的当前值(除非您明确添加一种传递此信息的方式)。当一个进程分叉另一个进程时,它可以指定子进程的启动环境,但仅此而已。子进程看不到其父进程在环境中所做的任何更改。

问题是python进程在启动时获得了环境的副本。Bash(或您正在使用的任何shell)主动监视终端大小,并相应地更改其环境——但python不会这样做。在shell中对环境的更改在子进程启动后不会传递给它们。谢谢,@MarkkuK。您似乎在说,这在*nix中是不可能的,而不仅仅是在Python中,对吗?没错-无论父/子关系如何,进程都无法访问其他正在运行的进程的环境。@MarkkuK:谢谢,这是我问题的答案,即,这在Python或任何其他编程语言中都是不可能的;一个进程只有在其诞生时才能访问父进程的环境变量。如果你想把它作为一个答案,我会很高兴地接受它!