一、os
模塊簡介
os
模塊是Python標準庫中與操作系統交互的一個重要模塊。它提供了非常豐富的方法來處理文件、目錄以及與操作系統相關的操作,讓我們可以編寫跨平臺的代碼,無論是在Windows、Linux還是macOS系統上都能運行。
二、文件和目錄操作
-
獲取當前工作目錄
import os current_dir = os.getcwd() print(current_dir)
這里使用
os.getcwd()
方法獲取當前Python腳本所在的工作目錄。它返回一個字符串,表示當前工作目錄的路徑。 -
改變當前工作目錄
import os new_dir = '/home/user/some_folder' try:os.chdir(new_dir)print(f"成功切換到目錄: {os.getcwd()}") except FileNotFoundError:print(f"目錄 {new_dir} 不存在")
os.chdir()
方法用于改變當前工作目錄。如果指定的目錄不存在,會拋出FileNotFoundError
異常。 -
創建目錄
- 創建單個目錄
import os new_dir = 'new_folder' try:os.mkdir(new_dir)print(f"目錄 {new_dir} 創建成功") except FileExistsError:print(f"目錄 {new_dir} 已存在")
os.mkdir()
方法用于創建一個新的目錄。如果目錄已經存在,會拋出FileExistsError
異常。- 創建多級目錄
import os new_dir = 'parent_folder/child_folder/grandchild_folder' try:os.makedirs(new_dir)print(f"目錄 {new_dir} 創建成功") except FileExistsError:print(f"目錄 {new_dir} 已存在")
os.makedirs()
方法可以遞歸地創建多級目錄。同樣,如果目錄已存在,會拋出FileExistsError
異常。 -
刪除目錄
- 刪除單個空目錄
import os dir_to_delete = 'empty_folder' try:os.rmdir(dir_to_delete)print(f"目錄 {dir_to_delete} 刪除成功") except FileNotFoundError:print(f"目錄 {dir_to_delete} 不存在") except OSError:print(f"目錄 {dir_to_delete} 不為空或無法刪除")
os.rmdir()
方法只能刪除空目錄。如果目錄不存在,會拋出FileNotFoundError
異常;如果目錄不為空,會拋出OSError
異常。- 刪除非空目錄(需要使用
shutil
模塊輔助)
import os import shutil non_empty_dir = 'non_empty_folder' try:shutil.rmtree(non_empty_dir)print(f"目錄 {non_empty_dir} 刪除成功") except FileNotFoundError:print(f"目錄 {non_empty_dir} 不存在")
shutil.rmtree()
方法可以刪除非空目錄及其所有內容。 -
列出目錄內容
import os dir_path = '.' contents = os.listdir(dir_path) for item in contents:print(item)
os.listdir()
方法返回指定目錄中的所有文件和目錄名的列表。這里傳入.
表示當前目錄。
三、文件操作
-
重命名文件或目錄
import os old_name = 'old_file.txt' new_name = 'new_file.txt' try:os.rename(old_name, new_name)print(f"重命名成功,從 {old_name} 到 {new_name}") except FileNotFoundError:print(f"文件 {old_name} 不存在")
os.rename()
方法用于重命名文件或目錄。如果源文件不存在,會拋出FileNotFoundError
異常。 -
刪除文件
import os file_to_delete = 'file_to_delete.txt' try:os.remove(file_to_delete)print(f"文件 {file_to_delete} 刪除成功") except FileNotFoundError:print(f"文件 {file_to_delete} 不存在")
os.remove()
方法用于刪除文件。如果文件不存在,會拋出FileNotFoundError
異常。
四、操作系統相關信息獲取
-
獲取操作系統名稱
import os os_name = os.name if os_name == 'posix':print("這是類Unix系統,如Linux或macOS") elif os_name == 'nt':print("這是Windows系統")
os.name
屬性返回操作系統的名稱,posix
表示類Unix系統,nt
表示Windows系統。 -
獲取環境變量
import os path_env = os.getenv('PATH') print(f"PATH 環境變量: {path_env}")
os.getenv()
方法用于獲取指定環境變量的值。這里獲取PATH
環境變量,它包含了系統用于查找可執行文件的目錄列表。