1、按字母分
os相關的函數:143個。按字母排序如下:
['abort', 'access', 'altsep',
'chdir', 'chmod', 'chown', 'chroot', 'close', 'closerange', 'confstr', 'confstr_names', 'ctermid', 'curdir',
'defpath', 'devnull', 'dup', 'dup2',
'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep',
'fchdir', 'fchmod', 'fchown', 'fdatasync', 'fdopen', 'fork', 'forkpty', 'fpathconf', 'fstat', 'fstatvfs', 'fsync', 'ftruncate',
'getcwd', 'getcwdu', 'getegid', 'getenv', 'geteuid', 'getgid', 'getgroups', 'getloadavg', 'getlogin', 'getpgid', 'getpgrp', 'getpid', 'getppid', 'getsid', 'getuid',
'isatty',
'kill', 'killpg', 'lchown',
'linesep', 'link', 'listdir', 'lseek', 'lstat',
'major', 'makedev', 'makedirs', 'minor', 'mkdir', 'mkfifo', 'mknod', 'name', 'nice',
'open', 'openpty',
'pardir', 'path', 'pathconf', 'pathconf_names', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv',
'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'rmdir',
'sep', 'setegid', 'seteuid', 'setgid', 'setgroups', 'setpgid', 'setpgrp', 'setregid', 'setreuid', 'setsid', 'setuid', 'spawnl', 'spawnle', 'spawnlp', 'spawnlpe', 'spawnv', 'spawnve', 'spawnvp', 'spawnvpe', 'stat', 'stat_float_times', 'stat_result', 'statvfs', 'statvfs_result', 'strerror', 'symlink', 'sys', 'sysconf', 'sysconf_names', 'system',
'tcgetpgrp', 'tcsetpgrp', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'ttyname',
'umask', 'uname', 'unlink', 'unsetenv', 'urandom', 'utime',
'wait', 'wait3', 'wait4', 'waitpid', 'walk', 'write']
2、按功能分
a、文件和文件夾操作(重要)
b、系統和環境相關(常用)
c、進程相關(不常用)
d、文件操作相關(建議用open)
a、文件和文件夾操作(重要)
臨時文件:
os.tmpfile()
返回一個打開的模式為(w+b)的文件對象 .這文件對象沒有文件夾入口,沒有文件描述符,將會自動刪除. 在unix,Windows中有效。
os.tempnam([dir[, prefix]])
為創建一個臨時文件返回一個唯一的path。在Windows使用TMP . 依賴於使用的C庫;
警告:
使用tempnam() 對於symlink攻擊是一個漏洞; 考慮使用tmpfile()代替.
在unix,Windows中有效。
os.tmpnam()
為創建一個臨時文件返回一個唯一的path.
Warning:
使用tempnam() 對於symlink攻擊是一個漏洞; 考慮使用tmpfile()代替.
在unix,Windows中有效。
os.TMP_MAX
tmpnam() 將產生唯一名字的最大數值.
路徑相關:
os.chdir(path)
更改當前路徑
>>> os.path.realpath(os.curdir)
'/root'
>>> os.chdir('/tmp')
>>> os.path.realpath(os.curdir)
'/tmp'
os.fchdir(fd)
os.fchdir() 方法通過文件描述符改變當前工作目錄。
>>> os.getcwd()
'/root'
>>> fd=os.open('/tmp',os.O_RDONLY )
>>> os.fchdir(fd)
>>> os.getcwd()
'/tmp'
>>>
os.getcwd()
獲取當前絕對路徑
>>> os.getcwd()
'/usr/local/src'
屬性相關:
os.chown(path, uid, gid)
在unix中有效,請查看相關文檔.。
os.getcwdu()
返回一個當前工作目錄的Unicode對象. 在unix,Windows中有效。
os.chflags(path, flags)
在unix中有效,請查看相關文檔.。
os.chroot(path)
在unix中有效,請查看相關文檔.。
os.chmod(path, mode)
改變path的mode到數字mode. mode為下面中的一個 (在stat模塊中定義)或者bitwise或者它們的組合:
stat.S_ISUID
stat.S_ISGID
stat.S_ENFMT
stat.S_ISVTX
stat.S_IREAD
stat.S_IWRITE
stat.S_IEXEC
stat.S_IRWXU
stat.S_IRUSR
stat.S_IWUSR
stat.S_IXUSR
stat.S_IRWXG
stat.S_IRGRP
stat.S_IWGRP
stat.S_IXGRP
stat.S_IRWXO
stat.S_IROTH
stat.S_IWOTH
stat.S_IXOTH
在unix,Windows中有效。
注:盡管Windows支持chmod(), 你只可以使用它設置只讀 flag (通過stat.S_IWRITE和stat.S_IREAD 常數或者一個相對應的整數)。所有其它的 bits都忽略了.
os.lchflags(path, flags)
在unix中有效,請查看相關文檔.。新增version 2.6.
os.lchmod(path, mode)
在unix中有效,請查看相關文檔.。新增version 2.6.
os.lchown(path, uid, gid)
在unix中有效,請查看相關文檔.。新增version 2.3.
os.link(source, link_name)
在unix中有效,請查看相關文檔.。
查看信息:
os.listdir(path)
返回path指定的文件夾包含的文件或文件夾的名字的列表. 這個列表以字母順序. 它不包括 '.' 和'..' 即使它在文件夾中. 在unix,Windows中有效。
Changed in version 2.3:在Windows NT/2k/XP 和Unix, 如果文件夾是一個Unicode object, 結果將是 Unicode objects列表. 不能解碼的文件名將仍然作為string objects返回.
os.lstat(path)
像stat(),但是沒有符號鏈接. 這是stat()的別名 在某些平台上,例如Windows.
創建相關:
os.mkfifo(path[, mode])
在unix中有效,請查看相關文檔.。
os.mknod(filename[, mode=0600, device])
創建一個名為filename文件系統節點(文件,設備特別文件或者命名pipe)。 mode指定創建或使用節點的權限, 組合 (或者bitwise) stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK, 和stat.S_IFIFO (這些常數在stat模塊). 對於 stat.S_IFCHR和stat.S_IFBLK, 設備定義了 最新創建的設備特殊文件 (可能使用 os.makedev()),其它都將忽略.新增version 2.3.
os.major(device)
從原始的設備號中提取設備major號碼 (使用stat中的st_dev或者st_rdev field).新增version 2.3.
os.minor(device)
從原始的設備號中提取設備minor號碼 (使用stat中的st_dev或者st_rdev field ).新增version 2.3.
os.makedev(major, minor)
以major和minor設備號組成一個原始設備號.新增version 2.3.
os.mkdir(path[, mode])
以數字mode的mode創建一個名為path的文件夾.默認的 mode 是 0777 (八進制). 在有些平台上, mode是忽略的. 當使用時。這當前的掩碼值是first masked out. 在unix,Windows中有效。
也可以創建臨時文件夾; 查看tempfile模塊tempfile.mkdtemp()函數.
os.makedirs(path[, mode])
遞歸文件夾創建函數。像mkdir(), 但創建的所有intermediate-level文件夾需要包含子文件夾. 拋出一個error exception如果子文件夾已經存在或者不能創建. 默認的 mode 是 0777 (八進制). 在有些平台上, mode是忽略的.當使用時。這當前的掩碼值是first masked out。
注:
makedirs()變得迷惑 如果路徑元素包含os.pardir.
現在可以正確處理 UNC路徑.
os.pathconf(path, name)
在unix中有效,請查看相關文檔.。
os.pathconf_names
在unix中有效,請查看相關文檔.。
os.readlink(path)
在unix中有效,請查看相關文檔.。
os.remove(path)
刪除路徑為path的文件.如果path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory. 這和下面的unlink()函數文檔是一樣的.在Windows,嘗試刪除一個正在使用的文件將拋出一個exception;在Unix,directory入口會被刪除,但分配給文件的存儲是無效的,直到原來的文件不再使用. 在unix,Windows中有效。
os.removedirs(path)
遞歸刪除directorie. 像rmdir(), 如果子文件夾成功刪除, removedirs()才嘗試它們的父文件夾,直到拋出一個error(它基本上被忽略,因為它一般意味着你文件夾不為空).例如, os.removedirs('foo/bar/baz') 將首先刪除 'foo/bar/baz', 然后刪除 'foo/bar' 和 'foo' 如果它們是空的. 如果子文件夾不能被成功刪除,將拋出OSError .新增version 1.5.2.
os.rename(src, dst)
重命名file或者directory src 到dst.如果dst是一個存在的directory, 將拋出OSError. 在Unix, 如果dst在存且是一個file,如果用戶有權限的話,它將被安靜的替換. 操作將會失敗在某些Unix 中如果src和dst在不同的文件系統中. 如果成功, 這命名操作將會是一個原子操作 (這是POSIX 需要). 在 Windows上, 如果dst已經存在, 將拋出OSError,即使它是一個文件. 在unix,Windows中有效。
os.renames(old, new)
遞歸重命名文件夾或者文件。像rename()新增version 1.5.2.
os.rmdir(path)
刪除path文件夾. 僅當這文件夾是空的才可以, 否則, 拋出OSError. 要刪除整個文件夾樹, 可以使用shutil.rmtree(). 在unix,Windows中有效。
os.stat(path)
執行一個stat()系統調用在給定的path上. 返回值是一個對象,屬性與stat結構成員有關: st_mode (保護位),
st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (所有用戶的id), st_gid (所有者group id), st_size (文件大小, 以位為單位), st_atime (最近訪問的時間), st_mtime (最近修改的時間), st_ctime (依賴於平台;在Unix上是metadata最近改變的時間,或者在 Windows上是創建時間):
>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
>>>
如果stat_float_times()返回True,time值是floats,以second進行計算. 一秒的小數部分也會顯示出來, 如果系統支持. 在Mac OS, 時間常常是 floats.查看 stat_float_times() 獲取更多信息.
在一些Unix系統上(例如 Linux), 下面的屬性也許是有效的: st_blocks (為文件分配了多少塊), st_blksize (文件系統blocksize), st_rdev (設備型號如果是一個inode設備). st_flags (用戶為文件定義的flags).
在unix,Windows中有效。
os.stat_float_times([newvalue])
決定stat_result是否以float對象顯示時間戳.
os.statvfs(path)
在unix中有效,請查看相關文檔.。
os.symlink(source, link_name)
在unix中有效,請查看相關文檔.。
os.unlink(path)
刪除 file路徑. 與remove()相同; 在unix,Windows中有效。
os.utime(path, times)
返回指定的path文件的訪問和修改的時間。如果時間是 None, 則文件的訪問和修改設為當前時間 。 否則, 時間是一個 2-tuple數字, (atime, mtime) 用來分別作為訪問和修改的時間.
在unix,Windows中有效。
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
輸出在文件夾中的文件名通過在樹中游走,向上或者向下.在根目錄下的每一個文件夾(包含它自己), 產生3-tuple (dirpath, dirnames, filenames)【文件夾路徑, 文件夾名字, 文件名】. dirpath是一個字符串, directory的路徑. dirnames在dirpath中子文件夾的列表 (不包括 '.' '..'). filenames 文件是在dirpath不包含子文件夾的文件名的列表.
注: 列表中的names不包含path.為獲得dirpath中的一個文件或者文件夾的完整路徑 (以頂目錄開始)或者, 操作 os.path.join(dirpath, name). 如果optional參數topdown為True或者not指定, 一個directory的3-tuple將比它的任何子文件夾的3-tuple先產生 (directories 自上而下).
如果topdown為 False, 一個directory的3-tuple將比它的任何子文件夾的3-tuple后產生 (directories 自下而上)。 當topdown為True,調用者可以修改列表中列出的文件夾名字(也可以使用del或者slice), walk() 僅僅遞歸每一個包含在dirnames中的子文件夾; 可以減少查詢,
利用訪問的特殊順序,或者甚至 告訴 walk() 關於文件夾的創建者或者重命名在它重新walk()之前.修改文件名當topdown 為False時是無效的,
因為在bottom-up模式中在dirnames中的directories比dirpath 它自己先產生 . 默認listdir()的errors將被忽略. 如果optional參數onerror被指定,它應該是一個函數; 它調用時有一個參數, 一個OSError實例.
報告這錯誤后,繼續walk,或者拋出exception終止walk.注意filename是可用的的 ,exception對象的filename屬性. 默認, walk() 不會進入符號鏈接 .新增version 2.6: 注:如果你傳入一個相對的pathname, 不要在walk()執行過程中改變當前文件夾. walk()不會改變改前文件夾, 同時確保它的調用者也不會改變. import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/email'): print root, "consumes", print sum(getsize(join(root, name)) for name in files), print "bytes in", len(files), "non-directory files" if 'CVS' in dirs: dirs.remove('CVS') # don't visit CVS directories # Delete everything reachable from the directory named in "top", # assuming there are no symbolic links. # CAUTION: This is dangerous! For example, if top == '/', it # could delete all your disk files. import os for root, dirs, files in os.walk(top, topdown=False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: os.rmdir(os.path.join(root, name)) 新增version 2.3.
os.access(path, mode)
使用現在的uid/gid嘗試訪問path. 注大部分操作使用有效的uid/gid, 因此運行環境可以在 suid/sgid環境嘗試,
如果用戶有權訪問path. mode為F_OK,測試存在的path,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多.如果允許訪問返回 True , 否則返回False.
查看Unix手冊access(2) 獲取更多信息. 在unix,Windows中有效。 注:使用access()去測試用戶是否授權. 在實際使用open()打開一個文件前測試會創建一個安全漏洞前 , 因為用戶會利用這短暫時間在檢測和打開這個文件去修改它. 注:即使access()表明它將succeed,但I/O 操作也可能會失敗, 如網絡文件系統. os.F_OK 作為access()的mode參數,測試path是否存在. os.R_OK 包含在access()的mode參數中 , 測試path是否可讀. os.W_OK 包含在access()的mode參數中 ,測試path是否可寫. os.X_OK 包含在access()的mode參數中 ,測試path是否可執行..
b、系統和環境相關
os.umask(mask)
設置當前權限掩碼,默認為022,同時返回先前的權限掩碼。在unix,Windows中有效。
os.system(command)
在shell中執行string命令. 這是使用標准C函數system(), 有同樣的限制. 例如改變 sys.stdin, 不影響命令執行環境.在Unix, 請查看相當文檔.
在Windows, 返回值是在 shell運行命令的返回值。
在unix,Windows中有效。
subprocess模塊提供了一個更強大的功能產生新進程和接收它們的結果;
os.times()
返回一個5-tuple的浮點數字, 表示(處理器或者其它)累積時間, 以秒為單位. items為:用戶時間, 系統time, 子用戶time, 子系統time, 和從過去一個固定的點真實流逝的時間. 在unix,Windows中有效。在Windows, 僅僅填充開始兩項, 其它都為0.
os.environ
一個mapping對象表示環境。例如,environ['HOME'] ,表示的你自己home文件夾的路徑(某些平台支持,windows不支持) ,它與C中的getenv("HOME")一致。 這個mapping對象在os模塊第一次導入時被創建,一般在python啟動時,作為site.py處理過程的一部分。在這一次之后改變environment不 影響os.environ,除非直接修改os.environ. 注:putenv()不會直接改變os.environ,所以最好是修改os.environ 注:在一些平台上,包括FreeBSD和Mac OS X,修改environ會導致內存泄露。參考 putenv()的系統文檔。 如果沒有提供putenv(),mapping的修改版本傳遞給合適的創建過程函數,將導致子過程使用一個修改的environment。 如果這個平台支持unsetenv()函數,你可以刪除mapping中的項目。當從os.environ使用pop()或clear()刪除一個項目時,unsetenv()會自動被調用(版本2.6)。
os.getenv(varname[, value])
返回environment變量varname的值,如果value不存在,默認為None.在大多版本的unix,Windows中有效。
os.putenv(varname, value)
設置varname環境變量為value值。此改變影響以os.system(), popen() 或 fork()和execv()啟動的子進程。在大多版本的unix,Windows中有效。
當支持putenv()時,在os.environ分配項目時,自動調用合適的putenv()。然而,調用putenv() 不會更新os.environ,所以直接設置os.environ的項。
os.openpty()
在一些Unix平台上有效,請查看相關文檔.
os.error
內建OSError exception的別名。
os.strerror(code)
返回程序中錯誤code的錯誤信息。在某些平台上,當給一個未知的code,strerror()返回NULL,將拋出ValueError。在unix,Windows中有效。
os.urandom(n)
返回n個隨機byte值的string,作為加密使用
os.name
導入依賴操作系統模塊的名字。下面是目前被注冊的名字:'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'.
os.curdir
操作系統用此常數字符串作為當前文件夾的引用。
os.pardir
操作系統用此常數字符串作為父文件夾的引用。
os.sep
系統使用此字符來分割路徑。
os.altsep
系統使用另外一個字符來分割路徑,如果只有一個分割字符存在,則是None.
os.extsep
分割基本文件名和擴展名的字符。新增version 2.2.
os.pathsep
系統使用此字符來分割搜索路徑(像PATH),例如POSIX上':',Windows上的';',也可以通過os.path
os.defpath
默認的搜索路徑用作 exec*p*()和spawn*p*()如果環境沒有 'PATH'. 也可以通過os.path.
os.linesep
當前平台上的換行符字符串. 在POSIX上是'\n',或者 在Windows上是'\r\n' . 不要使用 os.linesep作為換行符,當寫入文本文件時 (默認); 使用'\n'代替, 在所有平台上.
os.devnull
空設備的文件路徑.例如:POSIX上 '/dev/null' . 也可以通過os.path.新增version 2.4.
os.confstr(name)
在unix中有效,請查看相關文檔.。
os.confstr_names
在unix中有效,請查看相關文檔.。
os.getloadavg()
在unix中有效,請查看相關文檔.。新增version 2.3.
os.sysconf(name)
在unix中有效,請查看相關文檔.。
c、文件操作相關(不常用,建議用open)
os.fdopen(fd[, mode[, bufsize]])
返回一個文件描述符號為fd的打開的文件對象。mode和bufsize參數,和內建的open()函數是同一個意思。在unix,Windows中有效。 mode必須以'r', 'w',或者'a'開頭, 否則拋出ValueError. 以'a'開頭的mode, 文件描述符中O_APPEND位已設置.
os.popen(command[, mode[, bufsize]])
給或從一個command打開一個管理。返回一個打開的連接到管道文件對象,文件對象可以讀或寫,在於模式是'r'(默認) 或'w',bufsize參數,和內建的open()函數是同一個意思。 command返回的狀態 (在wait()函數中編碼) 和調用文件對象的close()返回值一樣, 除非返回值是0(無錯誤終止), 返回None . 在unix,Windows中有效。 從 version 2.6起: 所有的popen*()函數已拋棄. 使用subprocess模塊. os.popen2(cmd[, mode[, bufsize]]) os.popen3(cmd[, mode[, bufsize]]) os.popen4(cmd[, mode[, bufsize]])
os.close(fd)
關閉文件描述符fd. 在unix,Windows中有效。 這函數是為低層的I/O服務的,應用在os.open()或 pipe()返回的文件描述符上。 關閉一個由內建函數open()或 popen()或fdopen()打開的文件對象,使用close()方法。
os.closerange(fd_low, fd_high)
關閉從fd_low(包含)到fd_high(不包含)所有的文件描述符,忽略錯誤。在unix,Windows中有效。 等同於: for fd in xrange(fd_low, fd_high): try: os.close(fd) except OSError: pass
os.dup(fd)
返回文件描述符fd的cope. 在unix,Windows中有效。
os.dup2(fd, fd2)
復制文件描述符fd到fd2, 如果有需要首先關閉fd2. 在unix,Windows中有效。
os.fchmod(fd, mode)
改變文件描述符為fd的文件’mode‘為mode. 查看chmod()文檔 中mode的值. 在unix中有效,請查看相關文檔.。version 2.6中新增.
os.fchown(fd, uid, gid)
改變文件描述符為fd的文件的所有者和group的id為uid和gid. 如果不想設置, 就設置為-1. 在unix中有效,請查看相關文檔.。version 2.6中新增.
os.fdatasync(fd)
強制將文件描述符為fd的文件寫入硬盤. 不強制更新metadata. 在unix中有效,請查看相關文檔.。注:在MacOS中無效.和open的flush功能類似。
os.fpathconf(fd, name)
返回一個打開的文件的系統配置信息。name為檢索的系統配置的值,它也許是一個定義系統值的字符串,這些名字在很多標准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。 一些平台也定義了一些額外的名字。這些名字在主操作系統上pathconf_names的字典中。對於不在pathconf_names中的配置變量,傳遞一個數字作為名字,也是可以接受的。 在unix中有效,請查看相關文檔.。 如果name是一個字符串或者未知的,將拋出ValueError。如果name是一個特別的值,在系統上不支持,即使它包含在pathconf_names中,將會拋出錯誤數字為errno.EINVAL的OSError。
os.fstat(fd)
返回文件描述符fd的狀態,像stat()。在unix,Windows中有效。
os.fstatvfs(fd)
返回包含文件描述符fd的文件的文件系統的信息,像 statvfs(). 在unix中有效,請查看相關文檔.。
os.fsync(fd)
強制將文件描述符為fd的文件寫入硬盤.在Unix, 將調用fsync()函數;在Windows, 調用 _commit()函數.
如果你准備操作一個Python文件對象f, 首先f.flush(),然后os.fsync(f.fileno()), 確保與f相關的所有內存都寫入了硬盤.在unix,Windows中有效。
os.truncate(fd, length)
裁剪文件描述符fd對應的文件(字符數), 所以它最大不能超過文件大小. 在unix中有效,請查看相關文檔.。
os.isatty(fd)
如果文件描述符fd是打開的,同時與tty(-like)設備相連,則返回true, 否則False. 在unix中有效,請查看相關文檔.。
os.lseek(fd, pos, how)
設置文件描述符 fd當前位置為pos, how方式修改: SEEK_SET 或者 0 設置從文件開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效。
os.open(file, flags[, mode])
打開file同時根據flags設置變量flags ,如果有mode,則設置它的mode. 默認的mode是 0777 (八進制), 當前掩碼值是first masked out. 返回剛打開的文件描述符. 在unix,Windows中有效。 flag和mode值, 請查看C運行時文檔; flag常數(像O_RDONLY and O_WRONLY)在這個模塊中也定義了(在下面). 注:這函數是打算為低層 I/O服務的.正常的使用,使用內建函數open(),返回read()和 write() 等方法創建的文件對象.包裝文件描述符為“文件對象”, 使用fdopen().
os.pipe()
創建一個管道. 返回一對文件描述符(r, w) 分別為讀和寫. 在unix,Windows中有效。
os.read(fd, n)
從文件描述符 fd中讀取最多n個字節. 返回包含讀取字節的string. 文件描述符 fd對應文件已達到結尾, 返回一個空string. 在unix,Windows中有效。 注:這函數是打算為低層 I/O服務的 ,同時必須應用在os.open()或者pipe()函數返回的文件描述符. 讀取內建函數open()或者by popen()或者fdopen(),或者sys.stdin返回的一個“文件對象” ,
使用它的read()或者readline()方法.
os.tcgetpgrp(fd)
在unix中有效,請查看相關文檔.。
os.tcsetpgrp(fd, pg)
在unix中有效,請查看相關文檔.。
os.ttyname(fd)
在unix中有效,請查看相關文檔.。
os.write(fd, str)
寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度. 在unix,Windows中有效。 注:這函數是打算為低層 I/O服務的 ,同時必須應用在os.open()或者pipe()函數返回的文件描述符. 讀取內建函數open()或者by popen()或者fdopen(),或者sys.stdin返回的一個“文件對象” ,
使用它的read()或者readline()方法.
d、進程相關(不常用)
os.ctermid()
返回進程控制終端的文件名。在unix中有效,請查看相關文檔.。
>>> os.ctermid()
'/dev/tty'
os.getegid()
返回當前進程有效的group的id。對應於當前進程的可執行文件的"set id "的bit位。在unix中有效,請查看相關文檔.。
>>> os.getegid()
0
os.geteuid()
返回當前進程有效的user的id。在unix中有效,請查看相關文檔.
>>> os.geteuid()
0
os.getgid()
返回當前進程當前group的id。在unix中有效,請查看相關文檔.。
>>> os.getgid()
0
os.getgroups()
返回當前進程支持的groups的id列表。在unix中有效,請查看相關文檔.。
>>> os.getgroups()
[0]
os.getlogin()
返回進程控制終端登陸用戶的名字。在大多情況下它比使用environment變量LOGNAME來得到用戶名,或使用pwd.getpwuid(os.getuid())[0] 得到當前有效用戶id的登陸名更為有效。在unix中有效,請查看相關文檔.。
>>> os.getlogin()
'root'
os.getpgid(pid)
返回pid進程的group id.如果pid為0,返回當前進程的group id。在unix中有效,請查看相關文檔.。
>>> os.getpgid(0)
23007
os.getpgrp()
返回當前進程組的id.在unix中有效,請查看相關文檔.。
os.getpid()
返回當前進程的id.在unix,Windows中有效。
os.getppid()
返回當前父進程的id.在unix中有效,請查看相關文檔.。
os.getuid()
返回當前當前進程用戶的id.在unix中有效,請查看相關文檔.。
os.setegid(egid)
設置當前進程有效組的id.在unix中有效,請查看相關文檔.。
os.seteuid(euid)
設置當前進程有效用戶的id.在unix中有效,請查看相關文檔.。
os.setgid(gid)
設置當前進程組的id.在unix中有效,請查看相關文檔.。
os.setgroups(groups)
設置當前進程支持的groups id列表。groups必須是個列表,每個元素必須是個整數,這個操作只對超級用戶有效,在unix中有效,請查看相關文檔.。
os.setpgrp()
調用system的setpgrp()或setpgrp(0, 0)() ,依賴於使用的是哪個版本的system. 請查看 Unix手冊. 在unix中有效,請查看相關文檔.。
os.setpgid(pid, pgrp)
調用system的setpgid()設置pid進程group的id為pgrp.請查看 Unix手冊. 在unix中有效,請查看相關文檔.。
os.setreuid(ruid, euid)
設置當前process當前 和有效的用戶id. 在unix中有效,請查看相關文檔.。
os.setregid(rgid, egid)
設置當前process當前 和有效的組id. 在unix中有效,請查看相關文檔.。
os.getsid(pid)
調用system的getsid(). 請查看 Unix手冊. 在unix中有效,請查看相關文檔.。
os.setsid()
調用system的setsid().請查看 Unix手冊. 在unix中有效,請查看相關文檔.。
os.setuid(uid)
設置當前user id. 在unix中有效,請查看相關文檔.。
使用 exec*() 函數使用arguments列表來載入新程序. 在每個例子, 一個用戶敲入一個命令行中的第一個參數傳遞給程序作為它自己的名字而不是作為參數. 對於C 程序員來說, 它是傳遞給main()的argv[0]. 例如, os.execv('/bin/echo', ['foo', 'bar']) 將僅僅在標准輸出上打印bar; foo 將被忽略.
os.abort()
產生一個SIGABRT標識到當前的進程.在Unix,這默認的行為是產生一個主要的dump;
在Windows,這進程立即返回退出以一個狀態碼為3. 程序使用signal.signal()來注冊一個SIGABRT 將導致不同的行為. 在unix,Windows中有效。 os.execl(path, arg0, arg1, ...) os.execle(path, arg0, arg1, ..., env) os.execlp(file, arg0, arg1, ...) os.execlpe(file, arg0, arg1, ..., env) os.execv(path, args) os.execve(path, args, env) os.execvp(file, args) os.execvpe(file, args, env) 這些函數將執行一個新程序, 替換當前進程; 他們沒有返回.在Unix,新的執行體載入到當前的進程, 同時將和當前的調用者有相同的id. 將報告Errors 當拋出 OSError時. 當前的進程立即被替代. 打開文件對象和描述符不會被刷新, 如果在這些打開的文件中有數據緩沖區, 應該在調用exec*() 函數之前,使用sys.stdout.flush()或者os.fsync()flush它們 . 在unix,Windows中有效。
os._exit(n)
使用狀態n退出系統,沒有調用清理函數,刷新緩沖區。 在unix,Windows中有效。
注:標准退出的方法是sys.exit(n). _exit()一般使用於fork()產生的子進程中.
os.EX_OK
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_USAGE
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_DATAERR
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_NOINPUT
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_NOUSER
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_NOHOST
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_UNAVAILABLE
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_SOFTWARE
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_OSERR
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_OSFILE
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_CANTCREAT
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_IOERR
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_TEMPFAIL
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_PROTOCOL
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_NOPERM
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_CONFIG
在unix中有效,請查看相關文檔.。新增version 2.3.
os.EX_NOTFOUND
在unix中有效,請查看相關文檔.。新增version 2.3.
os.fork()
在unix中有效,請查看相關文檔.。
os.forkpty()
在一些unix中有效,請查看相關文檔
os.kill(pid, sig)
在unix中有效,請查看相關文檔.。
os.killpg(pgid, sig)
在unix中有效,請查看相關文檔.。新增version 2.3.
os.nice(increment)
在unix中有效,請查看相關文檔.。
os.plock(op)
在unix中有效,請查看相關文檔.。
os.popen(...)
os.popen2(...)
os.popen3(...)
os.popen4(...)
運行子進程, 返回交流的打開的管道.這些函數在前面創建文件對象時介紹過.
os.spawnl(mode, path, ...)
os.spawnle(mode, path, ..., env)
os.spawnlp(mode, file, ...)
os.spawnlpe(mode, file, ..., env)
os.spawnv(mode, path, args)
os.spawnve(mode, path, args, env)
os.spawnvp(mode, file, args)
os.spawnvpe(mode, file, args, env)
在新進程中執行程序path
(請使用subprocess模塊)
如果模式是 P_NOWAIT, 返回新進程的id;如果模式是P_WAIT,返回進程退出時的狀態碼。 如果正常退出,或者-signal, 當 signal 是killed.在 Windows, 進程id實際上是process的handle,所它可以使用於waitpid()函數.
import os
os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')
L = ['cp', 'index.html', '/dev/null']
os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)
在unix,Windows中有效。新增version 1.6.
os.P_NOWAIT
os.P_NOWAITO
spawn*()族函數參數mode的可選值. 如果給出其中任一個值, 新進程一創建完成,spawn*()函數將立即返回 ,返回進程id的值. 在unix,Windows中有效。新增version 1.6.
os.P_WAIT
spawn*()族函數參數mode的可能值. 如果將它賦值給mode, spawn*() 函數不返回,直接運行結束 以及如果運行成功 ,將返回進程的退出碼,或者如果 signal殺掉了這個進程,將返回-signal. 在unix,Windows中有效。新增version 1.6.
os.P_DETACH
os.P_OVERLAY
spawn*()族函數參數mode的可選值。P_DETACH和P_NOWAIT很相似,但是新進程依附在調用進程的console上。如果使用了P_OVERLAY,當前進程將被替換,spawn*()函數將無返回 。在Windows上有效。
新增version 1.6.
os.startfile(path[, operation])
以相關的程序打開文件. 當operation沒有指定或者'open', 這操作就像在Windows Explorer雙擊文件,或者將這個文件作為交互命令行中start命令的參數:與文件擴展相關的程序打開文件。 當指定另外操作時, 它必須是“command verb” 它指定應該對文件做什么.像Microsoft的'print' 'edit' (作用在文件上) 'explore' and 'find' (作用在文件夾上). startfile()只要相關的應該程序一啟動就返回。 沒有選項等待應用程序關閉, 沒有方法接收應用程序退出的狀態. path參數與當前directory相關.
如果你想使用一個絕對路徑,確保第一個字符不是 ('/')。 使用os.path.normpath() 函數確保路徑對於win32來說是正確的. 在Windows上有效.新增version 2.5: The operation parameter.
os.wait()
在unix中有效,請查看相關文檔.。
os.waitpid(pid, options)
Unix:等待一個指定的pid的子進程完成, 返回一個tuple返回它的進程id和退出狀態 . 一般情況下option設為0.更強細請查看相關文檔
在Windows: 等待一個指定的pid的進程完成, 返回一個tuple返回它的進程id和退出狀態向左移動了8位 。
如果pid小於或等於0沒有特別的意思,將拋出exception. integer options 沒有任何影響. pid 可以指向任何進程的id,不一定是子進程的id.
os.wait3([options])
在unix中有效,請查看相關文檔.。新增version 2.5.
os.wait4(pid, options)
在unix中有效,請查看相關文檔.。新增version 2.5.
os.WNOHANG 在unix中有效,請查看相關文檔。 os.WCONTINUED 在某些unix中有效,請查看相關文檔.。新增version 2.3. os.WUNTRACED 在unix中有效,請查看相關文檔.。 os.WCOREDUMP(status) 在unix中有效,請查看相關文檔.。新增version 2.3. os.WIFCONTINUED(status) 在unix中有效,請查看相關文檔.。新增version 2.3. os.WIFSTOPPED(status) 在unix中有效,請查看相關文檔.。 os.WIFSIGNALED(status) 在unix中有效,請查看相關文檔.。 os.WIFEXITED(status) 在unix中有效,請查看相關文檔.。 os.WEXITSTATUS(status) 在unix中有效,請查看相關文檔.。 os.WSTOPSIG(status) 在unix中有效,請查看相關文檔.。 os.WTERMSIG(status) 在unix中有效,請查看相關文檔.。