os模塊的簡介請參看 Python::OS 模塊 -- 簡介
os模塊的文件和目錄操作 Python::OS 模塊 -- 文件和目錄操作
os模塊的進程管理 Python::OS 模塊 -- 進程管理
Python的os模塊提供了對進程參數的設置,包括進程的運行環境,進程的運行權限等信息。
通過Python的os模塊提供的接口,可以修改進程的環境變量,執行時的權限設置,用戶ID,用戶組ID的修改以及進程ID,進程組ID,附加組ID以及進程的會話ID的修改和獲取,這些都是使用python進行系統編程的必要條件。
下面是對這些os模塊提供的接口的介紹(僅限Unix平台):
修改和獲取環境變量
環境變量關系到一個進程在運行時的行為,環境變量控制了進程的運行環境。Python的os模塊提供了獲取環境變量和修改環境變量的能力。
os.environ
一個mapping對象,用於存儲環境變量和對應的值。該mapping對象在os模塊被import的時候被載入,在這之后如果修改了環境變量,不會反映到該mapping對象,除非是通過os.environ直接修改。
os.getenv(varname[, value])
如果存在環境變量為varname的值,則返回該值,否則返回傳遞進去的value,如果value沒有指定,則返回None。
os.putenv(varname, value)
設置環境變量名為varname的值為value,這樣設置環境變量會影響以os.system(),os.popen()或os.fork()和os.execv()創建的子進程。
注意:當os.putenv()被支持,則直接修改os.environ會自動的轉換為調用os.putenv(),但是直接調用os.putenv()不會對os.environ產生影響,所以修改os.envron()的唯一方法是直接進行賦值操作。
os.unsetenv(varname)
刪除一個環境變量varname,該修改會影響創建的子進程的運行環境。
同樣的,當os.unsetenv()如果被支持,那么當直接刪除os.environ中的環境變量的時候,會轉換為調用unsetenv()來進行操作,但是直接調用 unsetenv()不是更新os.envron的內容,所以修改os.environ的有效方法是直接修改該mapping對象。
獲取和修改用戶ID和組ID
os.getegid()
返回當前進程的有效用戶組ID
os.geteuid()
返回當前進程的有效用戶ID
os.getuid()
返回當前進程的用戶ID
os.getgid()
返回當前進程的用戶組ID
os.getgroups()
返回由當前進程附加的組ID編號組成的列表
os.getresuid()
返回一個元組(ruid,euid,suid),表示當前進程的實際用戶ID,有效用戶ID和保存的用戶ID
os.getresgid()
返回一個元組(rgid, egid, sgid),表示當前進程的實際用戶組ID,有效的用戶組ID和保存的用戶組ID
os.setegid(egid)
設置當前進程的有效用戶組ID
os.seteuid(euid)
設置當前進程的有效用戶ID
os.setgroups(groups)
設置當前進程有關的附加組ID,參數groups必須是一個序列類型,而且每個參數必須是一個整數表示的組ID,該操作只能對超級用戶有效。
os.setpgid(pid, pgrp)
設置進程的用戶組ID如果進程的ID為pid,所在用進程組ID為pgrp。
os.setregid(rgid, egid)
設置當前進程的有效用戶組ID和實際用戶組ID
os.setresgid(rgid,egid,sgid)
設置當前進程的實際組ID,有效組ID和保存的用戶組ID。
os.setresuid(ruid,euid,suid)
設置當前進程的實際用戶ID,有效用戶ID和保存的用戶組ID。
os.setreuid(ruid, euid)
設置當前進程的實際用戶ID和有效用戶ID
設置和獲取進程相關ID
os.getpgid(pid)
返回進程ID為pid的進程的組ID,如果pid=0,則返回當前調用進程的進程組ID
os.getpgrp()
返回當前進程的進程組ID
os.getpid()
返回當前進程的進程ID
os.getppid()
返回當前進程的父進程的ID
os.getsid(pid)
返回進程ID為pid的進程所在的會話的會話ID
os.setsid()
設置當前進程的會話ID
os.setuid(uid)
設置當前進程的用戶ID
其他系統處理函數
os.ctermid()
返回當前進程的控制終端
os.getlogin()
返回登錄到系統的用戶名
os.strerror(code)
返回錯誤碼code對應的錯誤信息,當錯誤信息未知時,拋出一個ValueError異常。
os.umask(mask)
設置當前進程的權限掩碼,並且返回設置前的權限掩碼。
os.uname()
返回一個5元組,包括當前操作系統的信息,該5元組包括:(sysname, nodename, release, version, machine)。