python中如何获取windows环境的内容?
How to get the content of windows environment in python?
在Windows命令提示符下,我可以使用
set
获取系统环境内容
是否可以在 python 中得到这个?
这只得到python相关路径:
In [3]: import sys
In [4]: sys.path
Out[4]:
['',
'c:\Anaconda3\Scripts',
'c:\Anaconda3\python34.zip',
'c:\Anaconda3\DLLs',
'c:\Anaconda3\lib',
'c:\Anaconda3',
'c:\Anaconda3\lib\site-packages',
'c:\Anaconda3\lib\site-packages\Sphinx-1.2.3-py3.4.egg',
'c:\Anaconda3\lib\site-packages\flake8-2.2.5-py3.4.egg',
'c:\Anaconda3\lib\site-packages\mccabe-0.2.1-py3.4.egg',
'c:\Anaconda3\lib\site-packages\win32',
'c:\Anaconda3\lib\site-packages\win32\lib',
'c:\Anaconda3\lib\site-packages\Pythonwin',
'c:\Anaconda3\lib\site-packages\runipy-0.1.1-py3.4.egg',
'c:\Anaconda3\lib\site-packages\setuptools-7.0-py3.4.egg',
'c:\Anaconda3\lib\site-packages\IPython\extensions',
'c:\Users\Nick\.ipython']
尝试:
import os
import pprint
pprint.pprint(os.environ)
os.environ
是一本模仿您正在寻找的环境的字典。在这里,为了便于阅读,我只是把它漂亮地打印出来。但是当然你可以检查所有的键,检查特定键的内容,等等——字典上可能的所有大量操作!
修改 os.environ
不会影响 "upstream" 进程,例如生成您的 Python 程序的 cmd.exe
;没有直接的方法可以做到这一点。但是,它 将 影响 "downstream" 进程,例如您可以从此处 运行 使用 os.system
.
的程序
这将从 python 调用 SET,就好像它是 shell 命令一样。输出存储在变量 out.
中
import subprocess
setcmd = subprocess.Popen(["set"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, error = setcmd.communicate()
print out
有关子进程的更多信息以及为什么使用 shell=True 存在安全隐患,请参见此处:https://docs.python.org/2/library/subprocess.html
在Windows命令提示符下,我可以使用
set
获取系统环境内容
是否可以在 python 中得到这个?
这只得到python相关路径:
In [3]: import sys
In [4]: sys.path
Out[4]:
['',
'c:\Anaconda3\Scripts',
'c:\Anaconda3\python34.zip',
'c:\Anaconda3\DLLs',
'c:\Anaconda3\lib',
'c:\Anaconda3',
'c:\Anaconda3\lib\site-packages',
'c:\Anaconda3\lib\site-packages\Sphinx-1.2.3-py3.4.egg',
'c:\Anaconda3\lib\site-packages\flake8-2.2.5-py3.4.egg',
'c:\Anaconda3\lib\site-packages\mccabe-0.2.1-py3.4.egg',
'c:\Anaconda3\lib\site-packages\win32',
'c:\Anaconda3\lib\site-packages\win32\lib',
'c:\Anaconda3\lib\site-packages\Pythonwin',
'c:\Anaconda3\lib\site-packages\runipy-0.1.1-py3.4.egg',
'c:\Anaconda3\lib\site-packages\setuptools-7.0-py3.4.egg',
'c:\Anaconda3\lib\site-packages\IPython\extensions',
'c:\Users\Nick\.ipython']
尝试:
import os
import pprint
pprint.pprint(os.environ)
os.environ
是一本模仿您正在寻找的环境的字典。在这里,为了便于阅读,我只是把它漂亮地打印出来。但是当然你可以检查所有的键,检查特定键的内容,等等——字典上可能的所有大量操作!
修改 os.environ
不会影响 "upstream" 进程,例如生成您的 Python 程序的 cmd.exe
;没有直接的方法可以做到这一点。但是,它 将 影响 "downstream" 进程,例如您可以从此处 运行 使用 os.system
.
这将从 python 调用 SET,就好像它是 shell 命令一样。输出存储在变量 out.
中import subprocess
setcmd = subprocess.Popen(["set"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, error = setcmd.communicate()
print out
有关子进程的更多信息以及为什么使用 shell=True 存在安全隐患,请参见此处:https://docs.python.org/2/library/subprocess.html