OS模組(Python內建)
說明 : os模組是一種與作業系統相關的模組,提供數十種與作業系統溝通的函式,常用於檔案的複製、修改、查詢等,使用頻率相當高。
import os
print(os.system("notepad.exe")) #開啟記事本
print(os.system("calc.exe")) #開啟計算機
print(os.name) # 取得當前的使用平臺,# Windows用'nt'表示,Linux用'posix'表示
print(os.getcwd()) # 取得當前的工作目錄
接下來要先提關於相對路徑和絕對路徑
相對路徑:是從當前路徑開始的路徑,是以檔案位置為開始與其他檔案的對應位置,會隨著目錄位置不同而改變。
絕對路徑:是從根目錄開始的路徑,相當於詳細地址,不會隨著位置改變而不同。
「./」是代表目前所在目錄
「../」是代表上一層目錄,若目前已經是根目錄則依然為目前所在目錄
「/」在各個目錄名稱之間的分隔符號,如果放置在路徑之前則代表根目錄
以下以os.listdir()取得指定資料夾中所包含的文件及檔案列表來舉例說明:
print(os.listdir('C:/Users/User/Downloads/project_01')) # 絕對位置
print(os.listdir('./js')) # 相對位置,代表當層目錄下所有檔案列表
print(os.listdir('../project_01')) # 相對位置,代表上一層目錄下所有檔案列表
print(os.listdir('./js')),即是指os2.py是我當前使用的檔案,以此檔案為開始,
要找當層目錄'js'所包含的文件及檔案。
print(os.listdir('../project_01'))則是指以os2.py為開始,要找上一層'project_01'所包含的文件及檔案。
建立path目錄(只能建立一級目錄,如'D:\AAA\BBB'),在AAA目錄下建立BBB目錄
path = 'D:/2.舊東家/test_os_一級目錄'
print(os.mkdir(path))
建立多級目錄(如'D:\AAA\BBB\CCC\DDD'),可以在D槽下建立AAA目錄,
繼續在AAA目錄下建立BBB目錄,在BBB目錄下建立CCC目錄,在CCC目錄下建立DDD目錄
path = 'C:/Users/User.DESKTOP-OMLCNUB/Desktop/test_os'
print(os.makedirs(path))
若只是想要查看特定的路徑是否存在,不分檔案或目錄,則可使用 os.path.exists
fileName1 = '../../profile.js' #查詢上上一層路徑是否有profile.js
print(os.path.exists(fileName1))
判斷path是否存在,存在返回True,不存在返回False,output: False
fileName2 = './profile.js' #查詢當層路徑是否有profile.js
print(os.path.exists(fileName2))
output: True
關於 底線底線file底線底線
從一個路徑中提取檔案路徑,去除檔案名稱
print(os.path.dirname())
output: C:\Users\User.DESKTOP-OMLCNUB\Desktop
取得檔名的絕對路徑
print(os.path.realpath())
output: C:\Users\User.DESKTOP-OMLCNUB\Desktop\os02.py
雖然是所在的py文件的完整路徑,但這個變量有時候返回相對路徑,
有時候返回絕對路徑,所以會使用用os.path.realpath()函數處理獲得絕對路徑
print(os.path.dirname(os.path.realpath()))
output: C:\Users\User.DESKTOP-OMLCNUB\Desktop
取得檔案的絕對路徑和檔案名稱,路徑和名稱分開
print(os.path.split(os.path.realpath()))
output: ('C:\Users\User.DESKTOP-OMLCNUB\Desktop', 'os02.py')