91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中os模塊的學習與用法

發布時間:2020-07-18 15:44:52 來源:億速云 閱讀:166 作者:小豬 欄目:開發技術

這篇文章主要講解了Python中os模塊的學習與用法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

os 模塊代表了程序所在的操作系統,主要用于獲取程序運行所在操作系統的相關信息。

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

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

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

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

import os
# 顯示導入依賴模塊的操作系統的名稱
print(os.name)
# 獲取PYTHONPATH環境變量的值
print(os.getenv('PYTHONPATH'))
# 返回當前系統的登錄用戶名
print(os.getlogin())
# 獲取當前進程ID
print(os.getpid())
# 獲取當前進程的父進程ID
print(os.getppid())
# 返回當前系統的CPU數量
print(os.cpu_count())
# 返回路徑分隔符
print(os.sep)
# 返回當前系統的路徑分隔符
print(os.pathsep)
# 返回當前系統的換行符
print(os.linesep)
# 返回適合作為加密使用的、最多3個字節組成的bytes
print(os.urandom(3))

運行上面程序,可以看到如下輸出結果:

nt
None
yeeku
9904
12036
8
\
;

b'\x12\x1e\xcf'

從上面的輸出結果可以看出,在 Windows 系統上 Python 導入依賴模塊的操作系統名稱為“nt”;當前系統的登錄用戶名是“yeeku”:當前進程 ID 為“9904”;當前進程的父進程 ID 為“12036”;當前系統上有 8 個 CPU;當前系統(Windows)的路徑分隔符是“\”;當前系統(Windows)上多條路徑之間的分隔符是分號(;);但在當前系統(Windows)上換行符不能明顯看到,這是因為當在控制臺輸出“\r\n” 時才會產生兩個空行。

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

在 os 模塊下還包含各種進程管理函數,它們可用于啟動新進程、中止己有進程等。在 os 模塊下與進程管理相關的函數如下:

os.abort():生成一個 SIGABRT 信號給當前進程。在 UNIX 系統上,默認行為是生成內核轉儲;在 Windows 系統上,進程立即返回退出代碼 3。

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

os.forkpty():fork一個子進程。

os.kill(pid, sig):將 sig 信號發送到 pid 對應的過程,用于結束該進程。

os.killpg(pgid, sig):將 sig 信號發送到 pgid 對應的進程組。

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

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

os.startfile(path[,operation]):對指定文件使用該文件關聯的工具執行 operation 對應的操作。如果不指定 operation 操作,則默認執行打開(open)操作。operation 參數必須是有效的命令行操作項目,比如 open(打開)、edit(編輯)、print(打印)等。

os.system(command):運行操作系統上的指定命令。

下面程序示范了在 os 模塊中與進程管理相關的函數的功能:

import os
# 運行平臺上的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.x64\\notepad++.exe', ' ')
# 使用python命令執行os_test.py程序
os.execl("D:\\Python\\Python36\\python.exe", " ", 'os_test.py', 'i')

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

知識點補充:

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

注意

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

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

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

要創建臨時文件或路徑,建議使用tempfile模塊;

要進行更高級的文件和路徑操作則應當使用shutil模塊。

看完上述內容,是不是對Python中os模塊的學習與用法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂源县| 含山县| 安远县| 三明市| 应城市| 衡山县| 封丘县| 宜城市| 德清县| 河曲县| 布拖县| 浙江省| 边坝县| 襄城县| 温宿县| 广德县| 噶尔县| 阿鲁科尔沁旗| 类乌齐县| 大宁县| 岳阳县| 双流县| 易门县| 巴林左旗| 扬州市| 河源市| 河池市| 丹寨县| 乌兰察布市| 潜江市| 巫山县| 聊城市| 襄汾县| 芒康县| 白城市| 化隆| 靖宇县| 阿瓦提县| 清水县| 桂阳县| 霍州市|