python3從零學(xué)習(xí)-5.6.1、os.py模塊

源代碼:?Lib/os.py

進(jìn)程:

os.environ

一個(gè)表示字符串環(huán)境的?mapping 對(duì)象。

os.environb

字節(jié)版本的 environ:?一個(gè)以字節(jié)串表示環(huán)境的mapping?對(duì)象。

os.getenv(key,?default=None)

如果存在,返回環(huán)境變量?key?的值,否則返回?default。?key?,?default?和返回值均為 str 字符串類型。

os.getenvb(key,?default=None)

如果存在環(huán)境變量?key?那么返回其值,否則返回?default。?key?,?default?和返回值均為bytes字節(jié)串類型。

os.get_exec_path(env=None)

返回將用于搜索可執(zhí)行文件的目錄列表,與在外殼程序中啟動(dòng)一個(gè)進(jìn)程時(shí)相似。指定的?env?應(yīng)為用于搜索 PATH 的環(huán)境變量字典。

os.getpid()

返回當(dāng)前進(jìn)程ID

os.getppid()返回父進(jìn)程ID。當(dāng)父進(jìn)程已經(jīng)結(jié)束,在Unix中返回的ID是初始進(jìn)程(1)中的一個(gè),在Windows中仍然是同一個(gè)進(jìn)程ID,該進(jìn)程ID有可能已經(jīng)被進(jìn)行進(jìn)程所占用。os.strerror(code)根據(jù)?code?中的錯(cuò)誤碼返回錯(cuò)誤消息。 在某些平臺(tái)上當(dāng)給出未知錯(cuò)誤碼時(shí)?strerror()?將返回?NULL?并會(huì)引發(fā) ValueError。os.supports_bytes_environ如果操作系統(tǒng)上原生環(huán)境類型是字節(jié)型則為?True?(例如在 Windows 上為?False)。os.umask(mask)設(shè)定當(dāng)前數(shù)值掩碼并返回之前的掩碼。文件:

os.fdopen(fd,?*args,?**kwargs)

該函數(shù)創(chuàng)建新的文件對(duì)象。返回打開(kāi)文件描述符?fd?對(duì)應(yīng)文件的對(duì)象。類似內(nèi)建 open()?函數(shù),二者接受同樣的參數(shù)。不同之處在于 fdopen()?第一個(gè)參數(shù)應(yīng)該為整數(shù)。

os.close(fd)關(guān)閉文件描述符?fdos.closerange(fd_low,?fd_high)關(guān)閉從?fd_low? ? ? (包括)到?fd_high? ? ? (排除)間的文件描述符,并忽略錯(cuò)誤。os.device_encoding(fd)如果連接到終端,則返回一個(gè)與?fd? 關(guān)聯(lián)的設(shè)備描述字符,否則返回 None.os.fstat(fd)

獲取文件描述符?fd?的狀態(tài). 返回一個(gè)?stat_result? ? ? ? ?對(duì)象。

從 Python 3.3 起,此功能等價(jià)于?os.stat(fd)。os.fsync(fd)

強(qiáng)制將文件描述符?fd? 指向的文件寫(xiě)入磁盤(pán)。在 Unix,這將調(diào)用原生?fsync()?函數(shù);在 Windows,則是 MS?_commit()?函數(shù)。

如果要寫(xiě)入的是緩沖區(qū)內(nèi)的 Python?文件對(duì)象?f,請(qǐng)先執(zhí)行?f.flush(),然后執(zhí)行?os.fsync(f.fileno()),以確保與?f?關(guān)聯(lián)的所有內(nèi)部緩沖區(qū)都寫(xiě)入磁盤(pán)。os.ftruncate(fd,?length)將文件描述符?fd? ?對(duì)應(yīng)的文件切分開(kāi),以使其最大為?length? ? ? 字節(jié)。從 Python 3.3 開(kāi)始,它等效于?os.truncate(fd,?length)。os.isatty(fd)如果文件描述符?fd? ?打開(kāi)且已連接至 tty 設(shè)備(或類 tty 設(shè)備),返回?True,否則返回?False。?os.lseek(fd,?pos,?how)將文件描述符?fd?的當(dāng)前位置設(shè)置為?pos,位置的計(jì)算方式?how?如下:設(shè)置為?SEEK_SET? ? ? ? 或?0?表示從文件開(kāi)頭計(jì)算,設(shè)置為?SEEK_CUR? ? ? ? 或?1?表示從文件當(dāng)前位置計(jì)算,設(shè)置為?SEEK_END? ? ? ? 或?2?表示文件末尾計(jì)算。返回新指針位置,這個(gè)位置是從文件開(kāi)頭計(jì)算的,單位是字節(jié)。os.SEEK_SET、os.SEEK_CUR、os.SEEK_END?lseek()? ? ? 函數(shù)的參數(shù),它們的值分別為 0、1 和 2。os.open(path,?flags,?mode=0o777,?*,?dir_fd=None)

打開(kāi)文件?path,根據(jù)?flags? ? ?設(shè)置各種標(biāo)志位,并根據(jù)?mode? ? 設(shè)置其權(quán)限模式。當(dāng)計(jì)算?mode? ? 時(shí),會(huì)首先根據(jù)當(dāng)前 umask 值將部分權(quán)限去除。本方法返回新文件的描述符。

以下常量是?open()?函數(shù)?flags?參數(shù)的選項(xiàng)??梢杂冒次换蜻\(yùn)算符?|?將它們組合使用。部分常量并非在所有平臺(tái)上都可用。

os.O_RDONLYos.O_WRONLYos.O_RDWRos.O_APPENDos.O_CREATos.O_EXCLos.O_TRUNC

上述常量在 Unix 和 Windows 上均可用。

os.O_DSYNCos.O_RSYNCos.O_SYNCos.O_NDELAYos.O_NONBLOCKos.O_NOCTTYos.O_CLOEXEC

上述常數(shù)僅在 Unix 系統(tǒng)中可用。

os.O_BINARYos.O_NOINHERITos.O_SHORT_LIVEDos.O_TEMPORARYos.O_RANDOMos.O_SEQUENTIALos.O_TEXT

上述常數(shù)僅在 Windows 系統(tǒng)中可用。

os.pipe()

創(chuàng)建一個(gè)管道,返回一對(duì)分別用于讀取和寫(xiě)入的文件描述符?(r,?w)。

os.access(path,?mode,?*,?dir_fd=None,?effective_ids=False,?follow_symlinks=True)

使用真實(shí)的 uid/gid 測(cè)試對(duì)?path? ? 的訪問(wèn)。請(qǐng)注意,大多數(shù)測(cè)試操作將使用有效的 uid/gid,因此可以在 suid/sgid 環(huán)境中運(yùn)用此例程,來(lái)測(cè)試調(diào)用用戶是否具有對(duì)?path? ? 的指定訪問(wèn)權(quán)限。mode? ? 為?F_OK? ? 時(shí)用于測(cè)試?path? ? 是否存在,也可以對(duì)?R_OK ?、W_OK? ? ?和?X_OK? ? 中的一個(gè)或多個(gè)進(jìn)行“或”運(yùn)算來(lái)測(cè)試指定權(quán)限。允許訪問(wèn)則返回 True, ?否則返回 False.

os.F_OKos.R_OKos.W_OKos.X_OK

作為?access()? ? ? ?的?mode? ? 參數(shù)的可選值,分別測(cè)試?path? ? 的存在性、可讀性、可寫(xiě)性和可執(zhí)行性。

os.chdir(path)

將當(dāng)前工作目錄更改為?path?

os.chmod(path,?mode,?*,?dir_fd=None,?follow_symlinks=True)

將?path? ? 的 mode 更改為其他由數(shù)字表示的?mode?。mode? ? 可以用以下值之一,也可以將它們按位或組合起來(lái):

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

os.getcwd()

返回表示當(dāng)前工作目錄的字符串。

os.getcwdb()返回表示當(dāng)前工作目錄的字節(jié)串 (bytestring)。os.link(src,?dst,?*,?src_dir_fd=None,?dst_dir_fd=None,?follow_symlinks=True)

創(chuàng)建一個(gè)指向?src?的硬鏈接,名為?dst。

os.listdir(path='.')

返回一個(gè)列表,該列表包含了?path? ? 中所有文件與目錄的名稱。該列表按任意順序排列,并且不包含特殊條目?'.'?和?'..',即使它們確實(shí)在目錄中存在。

os.mkdir(path,?mode=0o777,?*,?dir_fd=None)

創(chuàng)建一個(gè)名為?path? ? 的目錄,應(yīng)用以數(shù)字表示的權(quán)限模式?mode?。


os.makedirs(name,?mode=0o777,?exist_ok=False)

遞歸目錄創(chuàng)建函數(shù)。與?mkdir()? ? ? 類似,但會(huì)自動(dòng)創(chuàng)建到達(dá)最后一級(jí)目錄所需要的中間目錄。?

os.major(device)

提取主設(shè)備號(hào),提取自原始設(shè)備號(hào)(通常是?stat?中的?st_dev?或?st_rdev?字段)。

os.minor(device)

提取次設(shè)備號(hào),提取自原始設(shè)備號(hào)(通常是?stat?中的?st_dev?或?st_rdev?字段)。

os.makedev(major,?minor)將主設(shè)備號(hào)和次設(shè)備號(hào)組合成原始設(shè)備號(hào)。

os.readlink(path,?*,?dir_fd=None)

返回一個(gè)字符串,為符號(hào)鏈接指向的實(shí)際路徑。其結(jié)果可以是絕對(duì)或相對(duì)路徑。如果是相對(duì)路徑,則可用?os.path.join(os.path.dirname(path),?result)?轉(zhuǎn)換為絕對(duì)路徑。

os.remove(path,?*,?dir_fd=None)

刪除文件路徑。如果path是一個(gè)目錄,則會(huì)引發(fā)OSError。使用rmdir()刪除目錄。

在 Windows 上,嘗試刪除正在使用的文件會(huì)拋出異常。而在 Unix 上,雖然該文件的條目會(huì)被刪除,但分配給文件的存儲(chǔ)空間仍然不可用,直到原始文件不再使用為止。

os.removedirs(name)

遞歸刪除目錄。工作方式類似于?rmdir()?, ? 不同之處在于,如果成功刪除了末尾一級(jí)目錄,removedirs()? ? ? ? ? 會(huì)嘗試依次刪除?path? ? ?中提到的每個(gè)父目錄,直到拋出錯(cuò)誤為止(但該錯(cuò)誤會(huì)被忽略,因?yàn)檫@通常表示父目錄不是空目錄)。例如,os.removedirs('foo/bar/baz')?將首先刪除目錄?'foo/bar/baz',然后如果?'foo/bar'?和?'foo'?為空,則繼續(xù)刪除它們。如果無(wú)法成功刪除末尾一級(jí)目錄,則拋出?OSError? ? ? ?異常。

os.rmdir(path,?*,?dir_fd=None)

刪除目錄路徑。僅當(dāng)目錄為空時(shí)才工作,否則會(huì)引發(fā)OSError。為了刪除整個(gè)目錄樹(shù),可以使用shutil.rmtree()。

os.stat(path,?*,?dir_fd=None,?follow_symlinks=True)

獲取文件或文件描述符的狀態(tài)。在所給路徑上執(zhí)行等效于?stat()?系統(tǒng)調(diào)用的操作。path? ? 可以是字符串類型,或bytes 類型,或打開(kāi)的文件描述符。返回一個(gè)?stat_result? ? ? ? ?對(duì)象。

os.truncate(path,?length)

截?cái)?path? ? 對(duì)應(yīng)的文件,以使其最大為?length? ? ? 字節(jié)大小。

os.utime(path,?times=None,?*,?[ns,?]dir_fd=None,?follow_symlinks=True)

設(shè)置文件?path? ? 的訪問(wèn)時(shí)間和修改時(shí)間。

os.walk(top,?topdown=True,?onerror=None,?followlinks=False)

生成目錄樹(shù)中的文件名,方式是按上->下或下->上順序?yàn)g覽目錄樹(shù)。對(duì)于以 top 為根的目錄樹(shù)中的每個(gè)目錄(包括 top 本身),它都會(huì)生成一個(gè)三元組 (dirpath, dirnames, filenames)。

dirpath 是一個(gè)字符串,表示目錄的路徑。dirnames 是一個(gè)列表,內(nèi)含 dirpath 中子目錄的名稱(不包括 '.' 和 '..' )。filenames 也是列表,內(nèi)含 dirpath 中非目錄文件的名稱。注意,列表中的名稱不包含路徑部分。要獲取 dirpath 中文件或目錄的完整路徑(從 top 起始),請(qǐng)執(zhí)行 os.path.join(dirpath, name)。

進(jìn)程管理:

os.kill(pid,?sig)

將信號(hào)?sig? ?發(fā)送至進(jìn)程?pid?。

os.popen(cmd,?mode='r',?buffering=-1)

打開(kāi)一個(gè)管道,它通往 / 接受自命令?cmd。返回值是連接到管道的文件對(duì)象,根據(jù)?mode? ? 是?'r'?(默認(rèn))還是?'w'?決定該對(duì)象可以讀取還是寫(xiě)入。

os.system(command)

在子 shell 中執(zhí)行命令(字符串)

os.times()

返回當(dāng)前的全局進(jìn)程時(shí)間。返回值是一個(gè)有 5 個(gè)屬性的對(duì)象:

user?- 用戶時(shí)間

system?- ? 系統(tǒng)時(shí)間

children_user?- 所有子進(jìn)程的用戶時(shí)間

children_system?- 所有子進(jìn)程的系統(tǒng)時(shí)間

elapsed?- 從過(guò)去的固定時(shí)間點(diǎn)起,經(jīng)過(guò)的真實(shí)時(shí)間

os.cpu_count()

返回系統(tǒng)的 CPU 數(shù)量。不確定則返回?None。

os.getrandom(size,?flags=0)

獲得最多為?size? ? 的隨機(jī)字節(jié)。本函數(shù)返回的字節(jié)數(shù)可能少于請(qǐng)求的字節(jié)數(shù)。

這些字節(jié)可用于為用戶空間的隨機(jī)數(shù)生成器提供種子,或用于加密目的。

os.urandom(size)

返回大小為?size? ? 的字符串,它是適合加密使用的隨機(jī)字節(jié)。

本函數(shù)從系統(tǒng)指定的隨機(jī)源獲取隨機(jī)字節(jié)。對(duì)于加密應(yīng)用程序,返回的數(shù)據(jù)應(yīng)有足夠的不可預(yù)測(cè)性,盡管其確切的品質(zhì)取決于操作系統(tǒng)的實(shí)現(xiàn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容