亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Python學(xué)習(xí)之os模塊及用法

瀏覽:3日期:2022-07-23 09:21:05

os 模塊代表了程序所在的操作系統(tǒng),主要用于獲取程序運(yùn)行所在操作系統(tǒng)的相關(guān)信息。

在 Python 的交互式解釋器中先導(dǎo)入 os 模塊,然后輸入 os.__all__ 命令(__all__ 變量代表了該模塊開放的公開接口),即可看到該模塊所包含的全部屬性和函數(shù)。

此處僅介紹 os 模塊中常用的屬性和函數(shù):

os.name:返回導(dǎo)入依賴模塊的操作系統(tǒng)名稱,通常可返回 ’posix’、’nt’、 ’java’ 等值其中之一。 os.environ:返回在當(dāng)前系統(tǒng)上所有環(huán)境變量組成的字典。 os.fsencode(filename):該函數(shù)對(duì)類路徑(path-like)的文件名進(jìn)行編碼。 os.fsdecode(filename):該函數(shù)對(duì)類路徑(path-like)的文件名進(jìn)行解碼。 os.PathLike:這是一個(gè)類,代表一個(gè)類路徑(path-like)對(duì)象。 os.getenv(key, default=None):獲取指定環(huán)境變量的值。 os.getlogin():返回當(dāng)前系統(tǒng)的登錄用戶名。與該函數(shù)對(duì)應(yīng)的還有 os.getuid()、os.getgroups()、os.getgid() 等函數(shù),用于獲取用戶 ID、用戶組、組 ID 等,這些函數(shù)通常只在 UNIX 系統(tǒng)上有效。 os.getpid():獲取當(dāng)前進(jìn)程 ID。 os.getppid():獲取當(dāng)前進(jìn)程的父進(jìn)程 ID。 os.putenv(key, value):該函數(shù)用于設(shè)置環(huán)境變量。 os.cpu_count():返回當(dāng)前系統(tǒng)的 CPU 數(shù)量。 os.sep:返回路徑分隔符。 os.pathsep:返回當(dāng)前系統(tǒng)上多條路徑之間的分隔符。一般在 Windows 系統(tǒng)上多條路徑之間的分隔符是英文分號(hào)(;);在 UNIX 及類 UNIX 系統(tǒng)(如 Linux、Mac os X)上多條路徑之間的分隔符是英文冒號(hào)(:)。 os.linesep:返回當(dāng)前系統(tǒng)的換行符。一般在 Windows 系統(tǒng)上換行符是“rn”:在 UNIX 系統(tǒng)上換行符是“n”;在 Mac os X 系統(tǒng)上換行符是“r”。 os.urandom(size):返回適合作為加密使用的、最多由 N 個(gè)字節(jié)組成的 bytes 對(duì)象。該函數(shù)通過操作系統(tǒng)特定的隨機(jī)性來源返回隨機(jī)字節(jié),該隨機(jī)字節(jié)通常是不可預(yù)測(cè)的,因此適用于絕大部分加密場(chǎng)景。

下面程序示范了 os 模塊的大部分函數(shù)的用法:

import os# 顯示導(dǎo)入依賴模塊的操作系統(tǒng)的名稱print(os.name)# 獲取PYTHONPATH環(huán)境變量的值print(os.getenv(’PYTHONPATH’))# 返回當(dāng)前系統(tǒng)的登錄用戶名print(os.getlogin())# 獲取當(dāng)前進(jìn)程IDprint(os.getpid())# 獲取當(dāng)前進(jìn)程的父進(jìn)程IDprint(os.getppid())# 返回當(dāng)前系統(tǒng)的CPU數(shù)量print(os.cpu_count())# 返回路徑分隔符print(os.sep)# 返回當(dāng)前系統(tǒng)的路徑分隔符print(os.pathsep)# 返回當(dāng)前系統(tǒng)的換行符print(os.linesep)# 返回適合作為加密使用的、最多3個(gè)字節(jié)組成的bytesprint(os.urandom(3))

運(yùn)行上面程序,可以看到如下輸出結(jié)果:

ntNoneyeeku9904120368;

b’x12x1excf’

從上面的輸出結(jié)果可以看出,在 Windows 系統(tǒng)上 Python 導(dǎo)入依賴模塊的操作系統(tǒng)名稱為“nt”;當(dāng)前系統(tǒng)的登錄用戶名是“yeeku”:當(dāng)前進(jìn)程 ID 為“9904”;當(dāng)前進(jìn)程的父進(jìn)程 ID 為“12036”;當(dāng)前系統(tǒng)上有 8 個(gè) CPU;當(dāng)前系統(tǒng)(Windows)的路徑分隔符是“”;當(dāng)前系統(tǒng)(Windows)上多條路徑之間的分隔符是分號(hào)(;);但在當(dāng)前系統(tǒng)(Windows)上換行符不能明顯看到,這是因?yàn)楫?dāng)在控制臺(tái)輸出“rn” 時(shí)才會(huì)產(chǎn)生兩個(gè)空行。

此外,在 os 模塊下還包含大量操作文件和目錄的功能函數(shù),本教程將會(huì)在后續(xù)章節(jié)專門介紹這些功能函數(shù)。

在 os 模塊下還包含各種進(jìn)程管理函數(shù),它們可用于啟動(dòng)新進(jìn)程、中止己有進(jìn)程等。在 os 模塊下與進(jìn)程管理相關(guān)的函數(shù)如下:

os.abort():生成一個(gè) SIGABRT 信號(hào)給當(dāng)前進(jìn)程。在 UNIX 系統(tǒng)上,默認(rèn)行為是生成內(nèi)核轉(zhuǎn)儲(chǔ);在 Windows 系統(tǒng)上,進(jìn)程立即返回退出代碼 3。

os.execl(path, arg0, arg1, ...):該函數(shù)還有一系列功能類似的函數(shù),比如 os.execle()、os.execlp() 等,這些函數(shù)都是使用參數(shù)列表 arg0, arg1,...來執(zhí)行 path 所代表的執(zhí)行文件的。

os.forkpty():fork一個(gè)子進(jìn)程。

os.kill(pid, sig):將 sig 信號(hào)發(fā)送到 pid 對(duì)應(yīng)的過程,用于結(jié)束該進(jìn)程。

os.killpg(pgid, sig):將 sig 信號(hào)發(fā)送到 pgid 對(duì)應(yīng)的進(jìn)程組。

os.popen(cmd, mode=’r’, buffering=-1):用于向 cmd 命令打開讀寫管道(當(dāng) mode 為 r 時(shí)為只讀管道,當(dāng) mode 為 rw 時(shí)為讀寫管道),buffering 緩沖參數(shù)與內(nèi)置的 open() 函數(shù)有相同的含義。該函數(shù)返回的文件對(duì)象用于讀寫字符串,而不是字節(jié)。

os.spawnl(mode, path, ...):該函數(shù)還有一系列功能類似的函數(shù),比如 os.spawnle()、os.spawnlp() 等,這些函數(shù)都用于在新進(jìn)程中執(zhí)行新程序。

os.startfile(path[,operation]):對(duì)指定文件使用該文件關(guān)聯(lián)的工具執(zhí)行 operation 對(duì)應(yīng)的操作。如果不指定 operation 操作,則默認(rèn)執(zhí)行打開(open)操作。operation 參數(shù)必須是有效的命令行操作項(xiàng)目,比如 open(打開)、edit(編輯)、print(打印)等。

os.system(command):運(yùn)行操作系統(tǒng)上的指定命令。

下面程序示范了在 os 模塊中與進(jìn)程管理相關(guān)的函數(shù)的功能:

import os# 運(yùn)行平臺(tái)上的cmd命令os.system(’cmd’)# 使用Excel打開g:abc.xls文件os.startfile(’g:abc.xls’)os.spawnl(os.P_NOWAIT, ’E:Tools編輯工具Notepad++.7.5.6.bin.x64notepad++.exe’, ’ ’)# 使用python命令執(zhí)行os_test.py程序os.execl('D:PythonPython36python.exe', ' ', ’os_test.py’, ’i’)

如果直接運(yùn)行上面程序,可以看到程序運(yùn)行后使用 Excel 打開了 abe.xls 文件,也打開了 Notepad++ 工具,還使用 python 命令運(yùn)行了 os_test.py 文件。但如果將程序中粗體字代碼取消注釋,將看到程序運(yùn)行后只是啟動(dòng)了 cmd 命令行程序,這是因?yàn)槭褂?as.system() 函數(shù)來運(yùn)行程序時(shí),新程序所在的進(jìn)程會(huì)替代原有的進(jìn)程。

知識(shí)點(diǎn)補(bǔ)充:

os就是“operating system”的縮寫,顧名思義,os模塊提供的就是各種 Python 程序與操作系統(tǒng)進(jìn)行交互的接口。通過使用os模塊,一方面可以方便地與操作系統(tǒng)進(jìn)行交互,另一方面頁可以極大增強(qiáng)代碼的可移植性。如果該模塊中相關(guān)功能出錯(cuò),會(huì)拋出OSError異常或其子類異常。

注意

如果是讀寫文件的話,建議使用內(nèi)置函數(shù)open();

如果是路徑相關(guān)的操作,建議使用os的子模塊os.path;

如果要逐行讀取多個(gè)文件,建議使用fileinput模塊;

要?jiǎng)?chuàng)建臨時(shí)文件或路徑,建議使用tempfile模塊;

要進(jìn)行更高級(jí)的文件和路徑操作則應(yīng)當(dāng)使用shutil模塊。

到此這篇關(guān)于Python學(xué)習(xí)之os模塊及用法的文章就介紹到這了,更多相關(guān)Python os模塊及用法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成年在线观看视频免费看 | 国产精品国产亚洲精品看不卡 | 一级特黄aaa大片大全 | 一级女性黄色生活片免费的 | 特级黄色片视频 | 中文字幕在线看片成人 | 国产欧美亚洲精品第3页在线 | 大陆一级黄色片 | 三级毛片在线播放 | 高清一区二区在线观看 | 在线播放免费人成毛片乱码 | 日本二区在线观看 | 日韩精品午夜视频一区二区三区 | 1024手机在线观看旧版国产 | 亚洲欧美一区二区三区久本道 | 亚洲精品ai换脸一区二区三区 | 国产免费高清无需播放器 | 久久青草18免费观看网站 | 清草在线视频精品 | 小明成人免费视频 | 免费a一级毛片在线播放 | 国产精品一二三区 | 丝袜诱惑中文字幕 | 国产精品久久久久久久久福利 | 免费观看黄视频 | 亚洲欧美日韩成人 | 亚洲精品久久午夜香蕉 | 国产精品制服诱惑 | 欧美成人免费毛片 | 尤物视频在线看 | 毛片在线看免费版 | 久久久亚洲国产精品主播 | 亚洲欧美日韩中文在线制服 | 免费看黄在线网站 | 黄色一级视频在线观看 | 国产乱码一区二区三区四川人 | 亚洲人成网国产最新在线 | 高清亚洲精品酒店一区 | 91亚洲精品久久 | 国产一区二区三区国产精品 | 三毛片 |