python之sys模塊與os模塊的常用基礎操作

sys模塊:處理系統相關功能

  1. sys.argv[第幾個參數] :獲取命令行(cmd)給這個程序的參數(如果中括號內爲0,則返回文件本身)
  2. sys.version : 查看目前系統(python)的版本
  3. sys.exit():

os._exit() vs sys.exit()

概述

python的程序有兩中退出方式:os._exit(), sys.exit()。本文介紹這兩種方式的區別和選擇。
os._exit()會直接將python程序終止,之後的所有代碼都不會繼續執行。
sys.exit()會引發一個異常:SystemExit,如果這個異常沒有被捕獲,那麼python解釋器將會退出。如果有捕獲此異常的代碼,那麼這些代碼還是會執行。捕獲這個異常可以做一些額外的清理工作。0爲正常退出,其他數值(1-127)爲不正常,可拋異常事件供捕獲。
舉例說明
在這裏插入圖片描述
print(‘os.exit’)#不打印直接退出了
在這裏插入圖片描述
區別

綜上,sys.exit()的退出比較優雅,調用後會引發SystemExit異常,可以捕獲此異常做清理工作。os._exit()直接將python解釋器退出,餘下的語句不會執行。

一般情況下使用sys.exit()即可,一般在fork出來的子進程中使用os._exit()
一般來說os._exit() 用於在線程中退出
sys.exit() 用於在主線程中退出。

exit(0)和exit(1)
exit(0):無錯誤退出
exit(1):有錯誤退出
退出代碼是告訴解釋器的(或操作系統)

在很多類型的操作系統裏,exit(0) 可以中斷某個程序,而其中的數字參數則用來表示程序是否是碰到錯誤而中斷。exit(1) 表示發生了錯誤進行退出,而 exit(0) 則表示程序是正常退出的,退出代碼是告訴解釋器的(或操作系統)。這和我們學的布爾邏輯 0==False 正好相反,不過你可以用不一樣的數字表示不同的錯誤結果。比如你可以用exit(100) 來表示另一種和 exit(2)或 exit(1) 不同的錯誤。(參數爲0一定會退出,參數爲其他時,必須要引發相應錯誤才能退出)

  1. sys.executable : 返回當前運行文件的地址
  2. sys.getwindowsversion():獲取Windows的版本
  3. sys.modules.keys():返回當前已導入、加載的模塊

os模塊:

  1. os.name : 獲取操作系統平臺
  2. os.getcwd():獲取當前工作目錄
  3. os.listdir(某個目錄):獲取某個目錄下所有的文件名(只會獲取一層,若有文件夾也不會再深入挖掘其中的文件,直接獲取文件夾名)
  4. os.system(“一個shell命令”):例如“calc”,是調用計算器
  5. os.remove(“目錄和文件”):刪除某個目錄下某個文件
  6. os.path.isfile(“提供一個文件夾或者文件”):判斷是否是文件
    os.path.isdir():判斷是否是文件夾
  7. os.path.split(提供一個路徑):把一個路徑拆分爲 目錄+文件名
    特別注意:比如C:/python3,會被拆分爲“C:/”(文件夾目錄) “python3”(文件名)
    若是C:/python3/,則會被拆分爲兩個文件夾目錄,加一個空文件名“”
發佈了31 篇原創文章 · 獲贊 96 · 訪問量 4317
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章