在日常工作中,經常需要用到操作系統,以及文件目錄相關的內容,屬於系統運維相關的必備知識點,本文主要簡述Python中與os模塊及os.path模塊相關內容,僅供學習分享使用,如有不足之處,還請指正。
導入os模塊
os模塊是Python的內置標准庫,提供了一種使用與操作系統相關的功能的便捷式途徑。如果需要調用os模塊,需要通過import的方式導入,如下所示:
1 import os 2 import os.path
os模塊系統命令
在os模塊中,與操作系統相關的常用方法,如下所示:
os模塊獲取環境變量,如下所示:
1 path1 = os.getenv('path') # 獲取環境變量 2 path2 = path1.split(sep=';') 3 for p in path2: 4 print(p) 5 6 os1 = os.getenv('OS') # 獲取 操作系統名 7 print(os1) 8 9 username = os.getenv('USERNAME') # 獲取 登錄賬號名 10 print(username)
os模塊調用操作系統命令,示例如下所示:
1 os.system('notepad') # 調用window相關命令 2 3 os.system('ping www.baidu.com') # 調用ping命令 4 5 os.system('ipconfig') # 調用ipconfig命令 6 7 os.system('cmd') # 打開命令行窗口
通過startfile方式啟動文件,示例如下所示:
1 os.startfile(path=r"D:\Program Files (x86)\Notepad++\notepad++.exe") # 打開文件
操作系統名稱,分隔符,換行符相關內容,示例如下所示:
1 name = os.name # 返回操作系統名稱 windows-->nt linux,uninx-->posix 2 print(name) 3 4 sep = os.sep # 分隔符 \ 5 print(sep) 6 7 linesep = os.linesep # 換行符 8 print(repr(linesep)) # windows--> '\r\n' linux-->\n
注意事項,如果在操作命令行輸出時,出現亂碼情況,如下所示:
則可以設置File-->Settings-->File Encodings-->Global Encoding 為GBK來解決,設置完畢后,重新執行,亂碼問題解決,如下所示:
os模塊文件操作
在os模塊中,與文件相關的常用方法,如下所示:
獲取文件的所有屬性(包括文件大小,創建時間,修改時間,訪問時間等),如下所示:
1 # os.stat_result(st_mode=33206, st_ino=844424930288389, st_dev=44815083, st_nlink=1, st_uid=0, st_gid=0, st_size=1931, st_atime=1625411990, st_mtime=1625411889, st_ctime=1625405477) 2 osstat = os.stat('login.py') # 獲取文件的所有信息,返回的對象類型 3 print(osstat)
os模塊目錄操作
在os模塊中,與目錄相關的常用方法,如下所示:
os模塊下,與模塊相關的常用方法,示例如下所示:
1 cwd = os.getcwd() # 獲取當前工作目錄,不帶最后的\ 2 print(cwd) 3 4 os.mkdir(path='movie') # 創建目錄 5 6 os.makedirs(name='movie/gangtai') # 創建多級目錄 7 8 # 返回目錄下所有的內容 9 files = os.listdir(path='D:\AiSmoking') 10 for file in files : 11 print(file)
os.path模塊文件及目錄操作
os.path模塊屬於os的子模塊,其中與文件及目錄相關的常用方法,如下所示:
os.path模塊下,與文件及目錄相關的內容,如下所示:
1 flag = os.path.exists(path='D:\AiSmoking\logs') # 判斷路徑是否存在 2 print(flag) 3 p = os.path.abspath('moive') # 獲取當前相對路徑的絕對路徑 4 print(p) 5 6 flag = os.path.isabs('movie') # 判斷當前路徑是否是絕對路徑 7 print(flag) 8 9 flag = os.path.isdir('movie') # 判斷當前路徑是不是一個目錄 10 print(flag) 11 12 flag = os.path.isfile('movie') # 判斷當前路徑是不是一個文件 13 print(flag) 14 15 real_path = os.path.realpath('合同') # 獲取真實路徑 16 print(real_path)
備注
次北固山下
【作者】王灣
客路青山外,行舟綠水前。
潮平兩岸闊,風正一帆懸。
海日生殘夜,江春入舊年。
鄉書何處達?歸雁洛陽邊。