我有一个Python脚本,需要知道$UID环境变量的值。问题是,由于某种原因,该变量在os.environ
中不存在。
下面是一个交互式演示 - $UID是在 shell 上定义的,但是尽管 Python 是从同一个 shell 启动的,但 os.environ
中不存在"UID"环境变量。
这是一个已知问题吗?有什么办法吗?
$ echo $UID
1003
$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['UID']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'UID'
>>>
这是
意料之中的,因为UID
是一个shell内部变量。它不会传播到子进程。
您必须直接通过os
模块获取值,并os.getuid()
我想你正在寻找os.getuid()